System and method for capturing images for training of an item identification model

ABSTRACT

A system for capturing images for training an item identification model obtains an identifier of an item. The system detects a triggering event at a platform, where the triggering event corresponds to a user placing the item on a platform. The system causes the platform to rotate. The system causes at least one camera to capture an image of the item while the platform is rotating. The system extracts a set of features associated with the item from the image. The system associates the item to the identifier and the set of features. The system adds a new entry to a training dataset of the item identification model, where the new entry represents the item labeled with the identifier and the set of features.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of U.S. patent applicationSer. No. 17/362,261 filed Jun. 29, 2021, by Sailesh BharathwaajKrishnamurthy et al., and entitled “ITEM IDENTIFICATION USING DIGITALIMAGE PROCESSING,” which is incorporated herein by reference.

TECHNICAL FIELD

The present disclosure relates generally to digital image processing,and more specifically to a system and method for capturing images fortraining of an item identification model.

BACKGROUND

Identifying and tracking objects within a space using computer visionposes several technical challenges. Conventional systems are unable toidentify an item from among multiple items in an image.

SUMMARY

Particular embodiments of systems disclosed in the present disclosureare particularly integrated into a practical application of usingcomputer vision and artificial intelligence to identify items, andfeatures about items, depicted in computer images. Accordingly, thepresent disclosure improves item identification technology, which can behelpful in a large number of computer vision applications, such asfacilitating contactless interactions at a grocery or convenience store.Thus, particular embodiments of the disclosed systems improve digitalimage processing technologies and various aspects of item identificationtechnologies.

Existing technology typically requires a user to scan or manuallyidentify items to complete an interaction at, for example, a grocerystore or convenience store. This creates a bottleneck in the system'sability to quickly identify items and complete item interactions. Incontrast, the disclosed systems can identify one or more particularitems from among multiple items depicted in a computer image. Thisprovides an additional practical application of identifying multipleitems at a time, which reduces the bottleneck and amount of resourcesthat need to be dedicated to the item interaction process. For example,a user can place multiple items on a platform of an imaging device suchas, for example, at a grocery store or convenience store checkout. Theimaging device may capture one or more images from each of the multipleitems. The disclosed system may process the captured one or more imagesand identify each of the multiple items. These practical applicationsare described in greater detail below. Although the present disclosureis described with reference to item interactions at a grocery store orconvenience store as an example, it should be understood that thetechnologies described herein have wider application in a variety ofother contexts and environments, such as item interaction at differenttypes of warehouses, shipping facilities, transportation hubs (e.g.,airports, bus stations, train stations), and the like.

Updating a Training Dataset of an Item Identification Model

The present disclosure contemplates systems and methods for updating atraining dataset of an item identification model. The itemidentification model may be configured to identify items based on theirimages.

In an example scenario, assume that the item identification model istrained and tested to identify a particular set of items. In some cases,a new item may be added to a list of items that are desired to beidentified by the item identification model. One technical challengecurrently faced is that to configure the item identification model to beable to identify new items (that the item identification model has notbeen trained to identify), the item identification technology may gothrough a retraining process where weight and bias values of perceptronsof neural network layers of the item identification model are changed.However, this process can be time-consuming and requires a lot ofprocessing and memory resources. In addition, it will be challenging toretrain the item identification model for each new item, especially ifnew items are added to the list of items to be identified by the itemidentification model frequently.

The disclosed system provides technical solutions for the technicalproblems mentioned above by configuring the item identification model tobe able to identify new items without retraining the item identificationmodel to be able to identify new items, as described below.

Typically, the item identification model of the present disclosure isconfigured to output an identifier of an item. For example, the itemidentification model may comprise a set of neural network layers wherethe output layer provides an identifier of an item. In the disclosedsystem, the item identification model outputs a set of features of anitem instead of an identifier of the item. For example, assume that anew item is added to the list of items to be identified by the itemidentification model. To this end, the disclosed system feeds an imageof the new item to the item identification model and the itemidentification model extracts the set of features of the new item. Theset of features of the item may correspond to the physical attributes ofthe new item.

The set of features of the item may be represented by a feature vectorthat comprises a set of numerical values. The disclosed system mayassociate the extracted feature vector with the new item and store theextracted feature vector in a database, e.g., to a training dataset ofthe item identification model. In this manner, the features of the newitem are added to the training dataset of the item identification modelto later identify the new item.

When it is desired to identify the new item, another image of the newitem is fed to the item identification model. The disclosed systemextracts a set of features from the image. The disclosed system maycompare the extracted set of features with a previously provided set offeatures associated with the new item stored in the training dataset ofthe item identification model. The disclosed system may identify the newitem by determining that the extracted set of features corresponds withthe previously provided set of features associated with the new item. Inthis way, the item identification model described herein avoids theretraining process, which saves time, processing resources, and memoryresources.

According to an embodiment, a system for updating a training dataset ofan item identification model comprises a plurality of cameras, a memory,and a processor. Each of the plurality of cameras is configured tocapture images of at least a portion of a platform. The memory isoperable to store a training dataset of an item identification model,where the training dataset comprises a plurality of images of differentitems. The item identification model is configured to identify itemsbased at least in part upon images of the items. The processor isoperably coupled with the memory. The processor is configured todetermine that a first item is not included in the training dataset. Inresponse to determining that the first item is not included in thetraining dataset, the processor may perform one or more operationsbelow. The processor obtains an identifier associated with the firstitem. The processor detects a triggering event at the platform, wherethe triggering event corresponds to a user placing the first item on theplatform. The processor captures one or more first images from the firstitem using the plurality of cameras, where the one or more first imagesare captured from one or more angles. For at least one image from amongthe one or more first images, the processor extracts a first set offeatures associated with the first item from the at least one image,where each feature corresponds to a physical attribute of the firstitem. The processor associates the first item to the identifier and thefirst set of features. The processor adds a new entry to the trainingdataset, where the new entry represents the first item labeled with atleast one of the identifier and the first set of features.

The disclosed system provides several practical applications andtechnical advantages, which include: 1) technology that identifies anitem based on extracting features of the item from images of the item;2) technology that improves the item identification technology byconfiguring an item identification model to be able to identify newitems without the need for a retraining process; and 3) technology thatimproves the item identification technology by identifying multipleitems at a time, where multiple items are placed on a platform whereimages of the multiple items are captured. Each of these technicaladvantages improves computer vision technology generally, and itemidentification technology specifically.

As such, the disclosed system may improve the underlying technologyassociated with processor and memory utilization. For example, byidentifying multiple items at a time, the processing and memoryresources are utilized more efficiently as opposed to when each item isidentified one at a time.

Further, the disclosed system may further improve the underlyingtechnology associated with processor and memory utilization byconfiguring an item identification model to be able to identify newitems without a retraining process, which saves additional processingand memory resources.

Capturing Images for Training an Item Identification Model

The present disclosure further contemplates systems and methods forcapturing images for training an item identification model. The capturedimages may be fed to the item identification model to extract a set offeatures of an item in the images. Thus, it increases itemidentification accuracy if the extracted features represent an accuratedescription of the item.

To this end, multiple images of the item from multiple angles may becaptured by multiple cameras. Each image may show a different side ofthe item. The disclosed system contemplates an unconventional imagingdevice to capture multiple images of the item from multiple angles. Forexample, the disclosed imaging device may comprise a platform that isconfigured to rotate. Thus, when an item is placed on the platform ofthe imaging device, the platform may rotate, and multiple images of theitem from multiple angles may be captured.

According to an embodiment, a system for capturing images for trainingan item identification model comprises a plurality of cameras, aplatform, a memory, and a processor. Each camera from among theplurality of cameras is configured to capture images of at least aportion of the platform. The platform is configured to rotate. Thememory is operable to store an item identification model, where the itemidentification model is configured to identify items based at least inpart upon images of the items. The processor is operably coupled withthe memory. The processor is configured to obtain an identifierassociated with an item. The processor detects a triggering event at theplatform, where the triggering event corresponds to a user placing theitem on the platform. The processor causes the platform to rotate. Theprocessor causes at least one camera from among the plurality of camerasto capture an image of the item while the platform is rotating. Theprocessor extracts a set of features associated with the item from theimage, where each feature corresponds to a physical attribute of theitem. The processor associates the item to the identifier and the set offeatures. The processor adds a new entry to a training dataset of theitem identification model, where the new entry represents the itemlabeled with at least one of the identifier and the set of features.

The disclosed system provides several practical applications andtechnical advantages, which include: 1) technology that provides anunconventional imaging device, including a platform of the imagingdevice, that facilitates capturing multiple images of an item frommultiple angles; and 2) technology that improves the item identificationtechnology by extracting a more comprehensive set of features of theitem from multiple images. Each of these technical advantages improvescomputer vision technology generally, and item identification technologyspecifically.

Identifying items based on aggregated metadata

The present disclosure further contemplates systems and methods foridentifying items based on aggregated metadata. As discussed above,multiple images of an item may be captured by an imaging device. Eachimage may show a different side of the item. Thus, different sets offeatures may be captured from each image. For example, a first image mayshow a first part of a logo on the item, and a second image may show asecond part of the logo. Similarly, different attributes of the item maybe extracted from different images, such as dimensions, dominant colors,masks that define a contour around the item, and boundary boxes aroundthe item, among others. The disclosed system is configured to identifyvalues of each feature from each image and aggregate the identifiedvalues of each feature.

For example, the disclosed system may identify values that representdominant colors of the item from multiple images of the item. Thedisclosed system may cluster the dominant colors identified in themultiple images and determine the overall dominant colors of the item.In another example, the disclosed system may determine multipledimensions for the item from the multiple images, and calculate a meanof the multiple dimensions. In another example, the disclosed system maydetermine multiple two-dimensional masks around the item from multipleimages, determine differences between each two adjacent two-dimensionalmasks, and determine a three-dimensional mask around the item bycombining the multiple two-dimensional masks and the determineddifferences. The aggregated metadata may be added to a database and usedto later identify the item.

According to an embodiment, a system for identifying items based onaggregated metadata comprises a memory and a processor. The memory isoperable to store a plurality of images of an item, where each imagefrom among the plurality of images shows a different side of the item.The processor is operably coupled with the memory. The processor isconfigured to obtain the plurality of images of the item. The processorextracts a set of features from each of a first image and a second imagefrom among the plurality of images, where each of the set of featuresrepresents a physical attribute of the item. For a first feature fromamong the set of features, the processor identifies a first value of thefirst feature associated with the first image of the item. The processoridentifies a second value of the first feature associated with thesecond image. The processor aggregates the first value with the secondvalue. The processor associates the item with the aggregated first valueand second value, where the aggregated first value and second valuerepresent the first feature of the item. The processor adds a new entryfor each image from among the plurality of images to a training datasetassociated with an item identification model. The new entry comprisesthe item associated with the aggregated first value and the secondvalue. The item identification model is configured to identify the itembased at least in part upon images of the item.

The disclosed system provides several practical applications andtechnical advantages, which include: 1) technology that improves itemidentification technology by identifying values of each featureextracted from multiple images of an item and aggregating metadata thatrepresent each feature; and 2) technology that provides a morecomprehensive set of features that describes an item.

Thus, by utilizing a more comprehensive set of features that describesan item, the item can be described more accurately. Therefore, the itemcan be identified more quickly and with a higher accuracy. This furtherimproves the item identification technology.

Further, since a more comprehensive description of the item is used,there is less burden on computational resources for identifying theitem. Thus, less computational resources may be utilized for identifyingthe item. Thus, the disclosed system may improve the underlyingtechnology associated with processing and memory utilization.

Refining an Item Identification Model Based on Feedback

The present disclosure further contemplates systems and methods forrefining an item identification model based on feedback. In an examplescenario, assume that a user places an item on a platform of an imagingdevice. The imaging device captures images of the item and transmits thecaptured images to the item identification model to identify the item.In some cases, the item may not be fully visible in the captured images.For example, a portion of the item may be obstructed by other items. Insuch cases, the identification model may not identify the itemcorrectly. The disclosed system may present the item on a graphical userinterface. The user may indicate that the item is not identifiedcorrectly on the graphical user interface. The user may scan anidentifier of the item, e.g., a barcode of the item. The disclosedsystem may use the identifier of the item as feedback to refine the itemidentification model. For example, the disclosed system may associatethe item to the captured images. The disclosed system may retrain theidentification model to learn to associate the item to the capturedimages. The disclosed system may update a set of features of the itembased on the determined association between the item and the capturedimages.

According to an embodiment, a system for refining an item identificationmodel comprises a plurality of cameras, a memory, and a processor. Eachof the plurality of cameras is configured to capture one or more imagesof at least a portion of a platform. The memory is operable to store anitem identification model, where the item identification model isconfigured to identify the item based at least in part upon images ofthe item. The processor is operably coupled with the memory. Theprocessor is configured to detect a triggering event at the platform,where the triggering event corresponds to a user placing the item on theplatform. The processor captures one or more images of the item usingthe plurality of cameras, where the one or more images are captured fromone or more angles. The processor extracts a set of features from atleast one of the one or more images, where each of the set of featurescorresponds to a physical attribute of the item. The processoridentifies the item based at least in part upon the set of features. Theprocessor receives an indication that the item is not identifiedcorrectly. The processor receives an identifier of the item. Theprocessor identifies the item based at least in part upon the identifierof the item. The processor feeds the identifier of the item and the oneor more images to the item identification model. The processor retrainsthe item identification model to learn to associate the item to the oneor more images. The processor updates the set of features based at leastin part upon the determined association between the item and the one ormore images.

The disclosed system provides several practical applications andtechnical advantages, which include a technology that improves itemidentification technology by using feedback received from users todetermine incorrectly identified items and refine an item identificationtechnology to be able to identify those items correctly in the future.

Thus, by refining the item identification technology based on feedback,the accuracy in item identification can be improved. Thus, the itemidentification model may be able to identify items with more confidence,accuracy, and more quickly.

Further, since the item identification is improved, there is less burdenon computational resources used for identifying items. Thus, thedisclosed system may improve the underlying technology associated withprocessing and memory utilization.

Certain embodiments of the present disclosure may include some, all, ornone of these advantages. These advantages and other features will bemore clearly understood from the following detailed description taken inconjunction with the accompanying drawings and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of this disclosure, reference is nowmade to the following brief description, taken in connection with theaccompanying drawings and detailed description, where like referencenumerals represent like parts.

FIG. 1 illustrates one embodiment of a system that is configured toupdate a training dataset of an item identification model;

FIG. 2 illustrates a perspective view of a first embodiment of animaging device for use in conjunction with the system of FIG. 1 ;

FIG. 3A illustrates example top-view depth images of a platform of theimaging device illustrated in FIG. 2 , before and after an item isplaced on the platform;

FIG. 3B illustrates an example perspective image of an item detected ona platform of the imaging device illustrated in FIG. 2 ;

FIG. 4 illustrates an example embodiment of the training dataset of anitem identification model for use in conjunction with the system of FIG.1 ;

FIG. 5 illustrates an example flowchart of a method for updating atraining dataset of an item identification model for use in conjunctionwith the system of FIG. 1 ;

FIG. 6 illustrates one embodiment of a system that is configured tocapture images for training an item identification model;

FIG. 7 illustrates a perspective view of a second embodiment of animaging device for use in conjunction with the system of FIG. 6 ;

FIG. 8 illustrates a perspective view of a third embodiment of animaging device with an enclosure for use in conjunction with the systemof FIG. 6 ;

FIG. 9 illustrates an example flowchart of a method for capturing imagesfor training an item identification model for use in conjunction withthe system of FIG. 6 ;

FIG. 10 illustrates an example of an operational flow of the system ofFIG. 6 for identifying items based on aggregated metadata;

FIG. 11 illustrates an example flowchart of a method for identifyingitems based on aggregated metadata for use in conjunction with thesystem of FIG. 6 ;

FIG. 12 illustrates one embodiment of a system that is configured torefine an item identification model based on feedback;

FIG. 13 illustrates an example of an operational flow of the system ofFIG. 12 for refining an item identification model based on feedback;

FIG. 14 illustrates an example image of an item on which a backgroundsuppression operation is performed by the system of FIG. 12 ; and

FIG. 15 illustrates an example flowchart of a method for refining anitem identification model based on feedback for use in conjunction withthe system of FIG. 12 .

DETAILED DESCRIPTION

As described above, previous technologies fail to provide efficient andreliable solutions to 1) update a training dataset of an itemidentification model; 2) capture images for training an itemidentification model; 3) identify items based on aggregated metadata;and 4) refine an item identification model based on feedback. Thisdisclosure provides various systems and methods that provide technicalsolutions to the technical problems described herein.

Example System for Updating a Training Dataset of an Item IdentificationModel

FIG. 1 illustrates one embodiment of a system 100 that is configured toupdate a training dataset 154 of an item identification model 152. Inone embodiment, system 100 comprises a server 140 communicativelycoupled to an imaging device 120 using a network 110. Network 110enables the communication between components of the system 100. Server140 comprises a processor 142 in signal communication with a memory 148.Memory 148 stores software instructions 150 that when executed by theprocessor 142, cause the processor 142 to perform one or more functionsdescribed herein. For example, when the software instructions 150 areexecuted, the processor 142 executes an item tracking engine 144 todetect one or more items 102 placed on a platform 128 of the imagingdevice 120, and add a new entry 130 for each detected item 102 to thetraining dataset 154. In other embodiments, system 100 may not have allof the components listed and/or may have other elements instead of, orin addition to, those listed above.

System Components Network

Network 110 may be any suitable type of wireless and/or wired network,including, but not limited to, all or a portion of the Internet, anIntranet, a private network, a public network, a peer-to-peer network,the public switched telephone network, a cellular network, a local areanetwork (LAN), a metropolitan area network (MAN), a wide area network(WAN), and a satellite network. The network 110 may be configured tosupport any suitable type of communication protocol as would beappreciated by one of ordinary skill in the art.

Example Imaging Device

Imaging device 120 is generally configured to capture images 104 anddepth images 106 of items 102 that are placed on the platform 128 of theimaging device 120. In one embodiment, the imaging device 120 comprisesone or more cameras 122, one or more three-dimensional (3D) sensors 124,one or more weight sensors 126, and a platform 128. Additionalinformation about the hardware configuration of the imaging device 120is described in FIG. 2 .

Each camera 122 is configured to capture images 104 of at least aportion of the platform 128. For example, when an item 102 is placed onthe platform 128, the cameras 122 are configured to capture images 104(e.g., RGB images) of the item 102. Examples of cameras 122 include, butare not limited to, cameras, 3D cameras, 2D cameras, video cameras, webcameras, and printed circuit board (PCB) cameras.

Each 3D sensor 124 is configured to capture depth images 106 of at leasta portion of the platform 128. For example, when an item 102 is placedon the platform 128, the 3D sensors 124 are configured to capture depthimages 106 (e.g., depth maps or point clouds) of the item 102. Examplesof 3D sensors 124 include, but are not limited to, depth-sensingcameras, time-of-flight sensors, LiDARs, structured light cameras, orany other suitable type of depth sensing device. In some embodiments, acamera 122 and a 3D sensor 124 may be integrated within a single device.In other embodiments, a camera 122 and a 3D sensor 124 may be distinctdevices.

Each weight sensor 126 is configured to measure the weight of items 102that are placed on the platform 128 of the imaging device 120. Forexample, a weight sensor 126 may comprise a transducer that converts aninput mechanical force (e.g., weight, tension, compression, pressure, ortorque) into an output electrical signal (e.g., current or voltage). Asthe input force increases, the output electrical signal may increaseproportionally. The item tracking engine 144 is configured to analyzethe output electrical signal to determine an overall weight 162 for theitems 102 on the weight sensor 126. Examples of weight sensors 126include, but are not limited to, a piezoelectric load cell or a pressuresensor. For example, a weight sensor 126 may comprise one or more loadcells that are configured to communicate electrical signals thatindicate a weight 162 experienced by the load cells. For instance, theload cells may produce an electrical current that varies depending onthe weight or force experienced by the load cells. The load cells areconfigured to communicate the produced electrical signals to the server140 (and consequently to the item tracking engine 144) for processing.

The platform 128 comprises a flat surface on which items 102 may beplaced. Details of the platform 128 are described in FIG. 2 .

Server

Server 140 is generally any device that is configured to process dataand communicate with other computing devices, databases, systems, etc.,via the network 110. The server 140 may also be referred to as an itemtracking device. Examples of the server 140 include, but are not limitedto, a server, a computer, a laptop, a tablet, or any other suitable typeof device. In FIG. 1 , the imaging device 120 and the server 140 areshown as two devices. In some embodiments, the imaging device 120 andthe server 140 may be integrated within a single device. The server 140is generally configured to oversee the operations of the item trackingengine 144, as described further below in conjunction with theoperational flow of the system 100 and method 500 described in FIG. 5 .

Processor 142 comprises one or more processors operably coupled to thememory 148. The processor 142 is any electronic circuitry including, butnot limited to, state machines, one or more central processing unit(CPU) chips, logic units, cores (e.g., a multi-core processor),field-programmable gate arrays (FPGAs), application-specific integratedcircuits (ASICs), or digital signal processors (DSPs). The processor 142may be a programmable logic device, a microcontroller, a microprocessor,or any suitable combination of the preceding. The processor 142 iscommunicatively coupled to and in signal communication with the memory148 and the network interface 146. The one or more processors areconfigured to process data and may be implemented in hardware orsoftware. For example, the processor 142 may be 8-bit, 16-bit, 32-bit,64-bit, or of any other suitable architecture. The processor 142 mayinclude an arithmetic logic unit (ALU) for performing arithmetic andlogic operations, processor registers that supply operands to the ALUand store the results of ALU operations, and a control unit that fetchesinstructions from memory and executes them by directing the coordinatedoperations of the ALU, registers and other components. The one or moreprocessors are configured to implement various instructions. Forexample, the one or more processors are configured to execute softwareinstructions 150 to implement the item tracking engine 144. In this way,processor 142 may be a special-purpose computer designed to implementthe functions disclosed herein. In an embodiment, the item trackingengine 144 is implemented using logic units, FPGAs, ASICs, DSPs, or anyother suitable hardware. The item tracking engine 144 is configured tooperate as described in FIGS. 1-5 . For example, the item trackingengine 144 may be configured to perform the operations of method 500 asdescribed in FIG. 5 .

Memory 148 is operable to store any of the information described abovewith respect to FIGS. 1-15 along with any other data, instructions,logic, rules, or code operable to implement the function(s) describedherein when executed by the processor 142. The memory 148 comprises oneor more disks, tape drives, or solid-state drives, and may be used as anover-flow data storage device, to store programs when such programs areselected for execution, and to store instructions and data that are readduring program execution. The memory 148 may be volatile or non-volatileand may comprise a read-only memory (ROM), random-access memory (RAM),ternary content-addressable memory (TCAM), dynamic random-access memory(DRAM), and static random-access memory (SRAM).

The memory 148 is operable to store the software instructions 150, itemidentification model 152, item images 104, depth images 106, trainingdataset 154, item identifier 132, features 158, machine learningalgorithm 156, triggering event 108, confidence scores 160, weights 162,threshold percentage 164, number 166, threshold percentage 168, and/orany other data or instructions. The software instructions 150 maycomprise any suitable set of instructions, logic, rules, or codeoperable to execute the item tracking engine 144. The number 166 mayrepresent a particular number of dominant colors of an item 102, such asone, two, three, four, five, etc.

Network interface 146 is configured to enable wired and/or wirelesscommunications. The network interface 146 is configured to communicatedata between the server 140 and other devices, systems, or domains. Forexample, the network interface 146 may comprise an NFC interface, aBluetooth interface, a Zigbee interface, a Z-wave interface, aradio-frequency identification (RFID) interface, a WIFI interface, a LANinterface, a WAN interface, a PAN interface, a modem, a switch, or arouter. The processor 142 is configured to send and receive data usingthe network interface 146. The network interface 146 may be configuredto use any suitable type of communication protocol as would beappreciated by one of ordinary skill in the art.

Item Tracking Engine

Item tracking engine 144 may be implemented by the processor 142executing the software instructions 150, and is generally configured toprocess images 104 and depth images 106 to identify items 102 that areplaced on the platform 128 of the imaging device 120. In the presentdisclosure, an image 104 of an item 102 may be interchangeably referredto as an item image 104. Operations of the item tracking engine 144 aredescribed in detail further below in conjunction with the operationalflow of the system 100 and method 500 described in FIG. 5 . Thecorresponding description below includes a brief description of certainoperations of the item tracking engine 144.

In one embodiment, the item tracking engine 144 is implemented by amachine learning algorithm 156 to process item images 104 and depthimages 106. For example, the machine learning algorithms 156 mayinclude, but are not limited to, a support vector machine, neuralnetwork, random forest, k-means clustering, etc. In other examples, themachine learning algorithms 156 may include, but are not limited to, amulti-layer perceptron, a recurrent neural network (RNN), an RNN longshort-term memory (LSTM), a convolution neural network (CNN), atransformer, or any other suitable type of neural network model. Theitem tracking engine 144 may implement the machine learning algorithm156 to implement and execute the item identification model 152.

In one embodiment, the machine learning algorithm 156 is generallyconfigured to receive an image 104 of an item 102 as an input andextract a set of features 158 from the item image 104. Similarly, theitem tracking engine 144 may receive a depth image 106 of an item 102and extract the set of features 158 from the depth image 106. Eachfeature 158 may correspond to and/or describe a physical attribute ofthe item 102.

The set of features 158 may be represented by a feature vector 134 thatcomprises a set of numerical values. For example, the set of features158 may include, but not limited to: 1) one or more dominant colors ofthe item 102; 2) a dimension of the item 102; 3) a bounding box aroundthe item 102; 4) a mask that defines a contour around the item 102; 5) ashape of the item 102; 6) edges of the item 102; and 7) a logo displayedon the item 102. Each of these features 158 of an item 102 is describedin greater detail below.

Each dominant color of the item 102 is determined based on determiningcolors of pixels that illustrate the item 102 in the item image 104and/or depth image 106, determining percentages of the numbers of pixelsthat have different colors, and determining one or more colors that havepercentages of number of pixels more than a threshold percentage 164.

In one embodiment, the item tracking engine 144 may be configured todetect a particular number 166 (e.g., three, five, or any other number)of dominant colors of the item 102 in the image item 104 and/or depthimage 106. The item tracking engine 144 (e.g., via the machine learningalgorithm 156) may determine percentages of numbers of pixels thatillustrate the item 102 and rank them in descending order. The itemtracking engine 144 (e.g., via the machine learning algorithm 156) maydetect the top particular number 166 of dominant colors in the rankedlist of colors of the item 102. The item tracking engine 144 maydetermine a percentage of a particular dominant color of an item 102 inan item image 104 by determining a ratio of a number of pixels that havethe particular dominant color in relation to the total number of pixelsillustrating the item 102 in the item image 104.

For example, assume that the particular number 166 of dominant colors isthree. Also, assume that the item tracking engine 144 detects that 40%of pixels that illustrate the item 102 in the image 104 are blue, 35% ofpixels that illustrate the item 102 in the image 104 are red, 32% ofpixels that illustrate the item 102 in the image 104 are green, and therest of the colors have smaller percentages of numbers of pixels. Inthis example, the item tracking engine 144 determines that the top threedominant colors of the item 102 in the image 104 are blue, red, andgreen.

In one embodiment, the item tracking engine 144 may be configured todetect dominant colors of the item 102 in the image 104 that havepercentages of numbers of pixels more than a threshold percentage 164,such as 40%, 42%, etc. Each dominant color may be determined based ondetermining that a number of pixels that have the dominant color is morethan a threshold number. In this case, the item tracking engine 144 (viathe machine learning algorithm 156) may determine percentages of numbersof pixels that illustrate the item 102 in the image 104, rank them indescending order, and determine the top dominant colors that havepercentages of a number of pixels more than the threshold percentage164.

The dimension of the item 102 in the image 104 may be represented by alength, a weight, and a height of the item 102.

The bounding box around the item 102 may correspond to a shape (e.g., arectangular, a square, any other geometry) that forms a boundary aroundthe item 102.

The mask of the item 102 may define a contour around the item 102. Forexample, the mask of the item 102 may have a higher resolution comparedto the bounding box, meaning that the mask around the item 102 mayrepresent a more accurate representation of edges and lines that formthe item 102.

In one embodiment, the machine learning algorithm 156 may include asupervised machine learning algorithm, where the machine learningalgorithm 156 may be trained using training dataset 154 that comprisesitem images 104 and depth images 106 of items 102 with theircorresponding labels, e.g., item identifiers 132, feature vectors 134,features 158, annotations 136, etc.

Details of the training dataset 154 are described in FIG. 4 . In brief,the training dataset 154 comprises multiple entries 130 for each item102. Each entry 130 may be associated with one image 104 of an item 102.Each image 104 of an item 102 may be associated with a set of features158 represented by a feature vector 134. Each image 104 of an item 102may be associated with a corresponding identifier 132 of the item 102.For example, an identifier 132 of the item 102 may include a label, abarcode, a Quick Response (QR) code, and/or the like.

Each entry 130 may be associated with one or more annotations 136. Inone embodiment, an annotation 136 may be used to reduce a search spaceduring identifying an item 102 placed on the platform 128. For example,the one or more annotations 136 may include a dimension (e.g., a length,a height, a weight), a dimension range (e.g., a length range, a heightrange, a weight range), one or more dominant colors, an item category(e.g., a type of an item, such as a can, a bottle, a candy, etc.), alogo, a brand, a shape, a weight, a weight range, among other aspects ofthe item 102. For example, if the item tracking engine 144 determinesthat an annotation 136 of an item 102 placed on the platform 128 of theimaging device 120 comprises an item category of bottle, the itemtracking engine 144 may search among those entries 130 that areassociated with the same item category for identifying the item 102,hence, reducing the search space. This provides practical applicationsof reducing computational complexity and utilizing processing and memoryresources for identifying the item 102 more efficiently.

In the example of FIG. 1 , the training dataset 154 comprises entries130 a-1, 130 a-2, and 130 a-n for item 102 a. The training dataset 154may include other entries 130 for other items 102. With respect to item102 a, entry 130 a-1 is associated with an image 104 a-1 of the item 102a. The entry 130 a-1 is associated with identifier 132 a-1, featurevectors 134 a-1, features 158 a-1, and annotations 136 a-1. The entry130 a-2 is associated with identifier 132 a-2, feature vectors 134 a-2,features 158 a-2, and annotations 136 a-2. Similarly, each entry 130 inthe training dataset 154 may be associated with one depth image 106 ofan item 102. Each depth image 106 of the item 102 may be associated witha set of features 158 represented by a feature vector 134. Each depthimage 106 of the item 102 may be associated with a correspondingidentifier 132 of the item 102 and annotations 136.

During the training process of the machine learning algorithm 156, themachine learning algorithm 156 determines weights and bias values of theneural network layers of the machine learning algorithm 156 that allowthe machine learning algorithm 156 to map images 104 of items 102 todifferent labels, e.g., item identifiers 132, features 158, featurevectors 134, annotations 136, etc. Through this process, the machinelearning algorithm 156 is able to identify items 102 within an image104. The item tracking engine 144 may be configured to train the machinelearning algorithm 156 using any suitable technique. In someembodiments, the machine learning algorithm 156 may be stored and/ortrained by a device that is external from the server 140. Similarly, themachine learning algorithm 156 may be trained to map depth images 106 ofitems 102 to their corresponding labels, e.g., item identifiers 132,features 158, feature vectors 134, and annotations 136.

In an example operation, assume that an item 102 is placed on theplatform 128. The imaging device 120 may capture one or more images 104of the item 102. The imaging device 120 may send the captured images 104to the server 140 for processing. The item tracking engine 144 (e.g.,via the machine learning algorithm 156) may extract a set of features158 from an image 104 of the item 102, where the set of features 158 isrepresented by a feature vector 134.

The item tracking engine 144 may compare the captured feature vector 134with each feature vector 134 previously stored in the training dataset154. In this process, the item tracking engine 144 may perform a dotproduct between the captured feature vector 134 and each feature vector134 previously stored in the training dataset 154. By this process, theitem tracking engine 144 may determine a confidence score 160 for eachcomparison, where the confidence score 160 may represent the similaritybetween a first feature vector 134 (extracted from the image 104 of theitem 102 on the platform 128) and a second feature vector 134 associatedwith an item 102 stored in the training dataset 154. The confidencescore 160 may be represented by a percentage, e.g., 80%, 85%, etc.

The item tracking engine 144 identifies an item 102 in the trainingdataset 154 that is associated with the highest confidence score 160from among the confidence scores 160. The item tracking engine 144 maydetermine that the item 102 (placed on the platform 128) corresponds tothe identified item 102 in the training dataset 154 that is associatedwith the highest confidence score 160.

In one embodiment, the item tracking engine 144 may determine that thefirst item 102 placed on the platform 128 corresponds to a second item102 stored in the training dataset 154, if more than a thresholdpercentage (e.g., 80%, 85%, etc.) of the set of features 158 extractedfrom the image 104 of the first item 102 corresponds to counterpartfeatures from the set of features 158 associated with the second item102 stored in the training dataset 154.

Similarly, the imaging device 120 may capture one or more depth images106 of the item 102, send the captured depth images 106 to the server140, and the item tracking engine 144 may extract the set of features158 from a depth image 106 of the item 102. The item tracking engine 144may compare the extracted set of features 158 with each set of features158 previously stored in the training dataset 154 by calculating aEuclidian distance between a first feature vector 134 extracted from adepth image 106 of the item placed on the platform 128 and a secondfeature vector 134 previously stored in the training dataset 154. TheEuclidian distance may correspond to the similarity between the firstfeature vector 134 and the second feature vector 134. If the Euclidiandistance is less than a threshold distance (e.g., 1%, 2%, 3%, etc.), theitem tracking engine 144 may determine that a first item 102 associatedwith the first feature vector 134 corresponds to the second item 102associated with the second feature vector 134 stored in the trainingdataset 154.

Operational Flow for Updating a Training Dataset of an ItemIdentification Model

In one embodiment, the operational flow of the system 100 may includeoperations to determine that an item 102 is not included in the trainingdataset 154, and in response, add a new entry 130 for the new item 102in the training dataset 154. For example, assume that a new item 102 isadded to a physical store. The machine learning algorithm 156 may needto be configured to identify the new item 102.

In one potential approach, a machine learning model is retrained to beable to identify the new item 102. In the retraining process, weight andbias values of perceptron of neural network layers of the machinelearning model are revised to be able to detect the new item 102.However, retraining a model may be time-consuming and consume a lot ofcomputational resources. The present disclosure discloses a technologythat enables the machine learning algorithm 156 to identify new items102 without retraining the machine learning algorithm 156, therebysaving time and computational resources. This process is describedbelow.

The machine learning algorithm 156 may include an input layer, one ormore hidden layers, and an output layer. The input layer is the firstlayer of the machine learning algorithm 156 that receives an image 104of an item 102. The one or more hidden layers may include at least oneconvolution layer to extract features 158 of the item 102 from pixels ofthe image 104.

Conventionally, the machine learning algorithm 156 may be trained tooutput an identifier of an item 102 detected in the image 104. Forexample, the output layer may include a plurality of perceptrons, whereeach perceptron outputs a different identifier of an item 102, e.g., aparticular bottle, a particular candy, etc. Thus, if a new item 102 isadded, a new perceptron may need to be added to the output layer of themachine learning algorithm 156 and the machine learning algorithm 156may need to be retrained to be able to identify the new item 102.However, if the output layer of the machine learning algorithm 156 isconfigured to represent extracted features 158 of items 102, adding newitems 102 may not cause retraining the machine learning algorithm 156.This technique may obviate retraining the machine learning algorithm156, reduce computational complexity caused by retraining the machinelearning algorithm 156, and optimize processing and memory resourceefficiency. Thus, in one embodiment, the machine learning algorithm 156may be configured to output features 158 of items 102 in the outputlayer.

Determining that an Item is Not Included in a Training Dataset

In one embodiment, the operational flow of the system 100 may begin whenthe item tracking engine 144 determines that an item 102 is not includedin the training dataset 154. For example, the item tracking engine 144may determine that the item 102 is not included in the training dataset154 if the item tracking engine 144 receives an image 104 of the item102, extracts features 158 of the item 102 from the image 104, anddetermines that no image 104 in the training dataset 154 hascorresponding (or matching) features 158.

In response to determining that the item 102 is not included in thetraining dataset 154, the item tracking engine 144 may performoperations described below to add a new entry 130 representing the item102 to the training dataset 154 without retraining the training dataset154.

The item tracking engine 144 may obtain an identifier 132 associatedwith the item 102. In this process, the item tracking engine 144 mayobtain a scan of a barcode associated with the item 102. For example,the item tracking engine 144 may obtain the scan of the barcodeassociated with the item 102 when a user scans the barcode of the item102, for example, using a barcode scanner. In other examples, the itemtracking engine 144 may obtain a scan of a QR code, a label, or anyother identifier that uniquely identifies the item 102.

Detecting a Triggering Event at the Platform

The item tracking engine 144 detects a triggering event 108 at theplatform 128 (illustrated in FIG. 2 ). The triggering event 108 maycorrespond to a user placing the item 102 on the platform 128.

In one embodiment, the item tracking engine 144 may detect thetriggering event 108 at the platform 128 based on the images 104captured by the cameras 122.

To this end, the imaging device 120 may capture a reference image 104 ofthe platform 128 when no item 102 is placed on the platform 128. Theimaging device 120 may send the reference image 104 to the server 140.When an item 102 is placed on the platform 128, the imaging device 120may capture an image 104 of the item 102 on the platform 128. Theimaging device 120 may send the image 104 to the server 140. The itemtracking engine 144 may compare the reference image 104 with the image104. The item tracking engine 144 may determine that the item 102 isplaced on the platform 128 based on the differences between thereference image 104 and the image 104.

In one embodiment, the item tracking engine 144 may detect thetriggering event 108 at the platform 128 based on depth images 106captured by 3D sensors 124, similar to that described in FIGS. 3A and3B. To this end, the imaging device 120 may capture a reference depthimage 106 of the platform 128 when no item 102 is placed on the platform128. The imaging device 120 may send the reference depth image 106 tothe server 140. The imaging device 120 may capture a depth image 106 ofan item 102 on the platform 128 when the item 102 is placed on theplatform 128. The imaging device 120 may send the depth image 106 to theserver 140. The item tracking engine 144 may compare the reference depthimage 106 with the depth image 106. The item tracking engine 144 maydetect that the item 102 is placed on the platform 128 based on thedifferences between the reference depth image 106 and the depth image106.

In one embodiment, the item tracking engine 144 may detect thetriggering event 108 at the platform 128 based on weight changes at theplatform 128 detected by the weight sensor 126. In this process, when noitem 102 is placed on the platform 128, the weight sensor 126 may detectthat there is no item 102 is on the platform 128 because no pressure orweight is sensed by the weight sensor 126. When an item 102 is placed onthe platform 128, the weight sensor 126 may detect a weight 162 of theitem 102, e.g., a weight change. The imaging device 120 may send thedetected weight 162 of the item 102 to the server 140. The item trackingengine 144 may detect the triggering event 108 based on the detectedweight 162 of the item 102.

In one embodiment, the item tracking engine 144 may detect thetriggering event 108 at the platform 128 based on detecting that anobject has entered a virtual curtain or boundary around the platform128. The object may include an item 102, a hand of a user, etc. Forexample, the item tracking engine 144 may define a virtual curtainaround the platform 128, e.g., by implementing image processing.

In certain embodiments, the item tracking engine 144 may detect thetriggering event 108 by aggregating one or more indications detectedfrom differences between images 104 and the reference image 104 of theplatform 128, differences between depth images 106 and reference depthimage 106 of the platform 128, weight change 162 on the platform 128,and/or an object entering the virtual curtain around the platform 128.

Capturing Image(s) of the Item and Extracting Features of the Item

The imaging device 120 may capture one or more images 104 of the item102 using the cameras 122. The cameras 122 may be placed at differentlocations with respect to the platform 128. An example configuration ofarrangements of the cameras 122 is described in FIG. 2 . The one or moreimages 104 may be captured from one or more angles. Example images 104are illustrated in FIG. 4 . The imaging device 120 may send the one ormore images 104 to the server 140. The item tracking engine 144 mayperform the following operations for each image 104 of the item 102.

The item tracking engine 144 may extract a set of features 158associated with the item 102 from the image 104, e.g., by feeding theimage 104 to the machine learning algorithm 156, similar to thatdescribed above. The item tracking engine 144 may associate the item 102to the identifier 132 and the set of features 158.

The item tracking engine 144 may add a new entry 130 to the trainingdataset 154, where the new entry 130 may represent the item 102 labeledwith the identifier 132 and the set of features 158.

In some embodiments, the item tracking engine 144 may add a new entry130 for each captured image 104 of the new item 102 to the trainingdataset 154, where each new entry 130 is associated with a set offeatures 158, identifier 132, feature vector 134, and/or annotations136, similar to that described above. The item tracking engine 144 mayperform a similar operation for one or more depth images 106 of the item102 placed on the platform 128.

Identifying the New Item

Now that the new item 102 is added to the training dataset 154, it canbe identified by the item tracking engine 144, as described below.

For example, assume that the new item 102 is placed on the platform 128.The item tracking engine 144 may detect a second triggering event 108 atthe platform 128, similar to that described above. The imaging device120 may capture one or more second images 104 of the item 102 using thecameras 122. The imaging device 120 may send the one or more secondimages 104 to the server 140.

The item tracking engine 144 may extract a second set of features 158associated with the item 102 from each of the one or more second images104. The item tracking engine 144 may compare the extracted second setof features 158 with the set of features 158 previously extracted andstored in the training dataset 154.

In one embodiment, the item tracking engine 144 may determine that thenew item 102 corresponds to the item 102 previously stored in thetraining dataset 154 if it is determined that more than a thresholdpercentage 168 (e.g., more than 80%, 85%, etc.) of the second setfeatures 158 corresponds to counterpart features 158 of the previouslyextracted set of features 158, similar to that described above.

In certain embodiments, the item tracking engine 144 may perform asimilar operation for depth images 106 of the item 102. For example, theitem tracking engine 144 may receive one or more depth images 106 of theitem 102, extract features 158 from each of depth images 106, and add anew entry 130 for each depth image 106 of the item 102 to the trainingdataset 154. The item tracking engine 144 may identify the new item 102by comparing a captured depth image 106 and depth images 106 stored inthe training dataset 154, similar to that described above.

Example Imaging Device

FIG. 2 illustrates a perspective view of an embodiment of an imagingdevice 120. In this example, the imaging device 120 comprises aplurality of cameras 122, a plurality of 3D sensors 124, a weight sensor126, a platform 128, and a frame structure 210. The imaging device 120may be configured as shown in FIG. 2 or in any other suitableconfiguration. In some embodiments, the imaging device 120 may furthercomprise additional components, including, but not limited to, light,displays, and graphical user interfaces.

The platform 128 comprises a surface 212 that is configured to hold aplurality of items 102. In some embodiments, the weight sensor 126 maybe a distinct device from the imaging device 126. In some embodiments,the platform 128 may be integrated with the weight sensor 126. Forexample, the platform 128 may be positioned on the weight sensor 126which allows the weight sensor 126 to measure the weight of items 102that are placed on the platform 128. As another example, the weightsensor 126 may be disposed within the platform 128 (such that the weightsensor 126 is integrated with the platform 128) to measure the weight ofitems 102 that are placed on the platform 128. In some embodiments, atleast a portion of the surface 212 may be transparent. In this case, acamera 122 or scanner (e.g., a barcode scanner, a QR code scanner) maybe disposed below the surface 212 of the platform 218 and configured tocapture images 104 or scan the bottoms of items 102 placed on theplatform 128. For instance, a camera 122 or scanner may be configured toidentify and read product labels, barcodes, and/or QR codes of items 102through the transparent surface 212 of the platform 128. The platform128 may be formed of aluminum, metal, wood, plastic, glass, or any othersuitable material.

The frame structure 210 may comprise a set of rails that are assembledto hold the cameras 122 and 3D sensors 124. The frame structure 210 isgenerally configured to support and position cameras 122 and 3D sensors124. In the example of FIG. 2 , the frame structure 210 is configured toposition cameras 122 a and 122 b on one side of the platform 128, acamera 122 c on another side of the platform 128, and cameras 122 d and122 e on another side of the platform 128. The cameras 122 a to 122 ehave perspective views of the platform 128. The cameras 122 a to 122 eare configured to capture side or perspective images 104 of items 102placed on the platform 128. An example of a perspective image 104 of anitem 102 is illustrated in FIG. 3B.

In some embodiments, the frame structure 128 may further comprise one ormore other cameras 122 (not shown) positioned on one or more other sidesof the platform 128. The frame structure 210 may be configured to useany number and combination of cameras 122 a to 122 e. For example, oneor more of the identified cameras 122 may be optional and omitted.

The frame structure 210 is further configured to position a camera 122 fabove the platform 128. The cameras 122 f may be configured to capturetop-view images 104 of the platform 128. In some embodiments, the framestructure 210 may further comprise one or more other cameras 122 (notshown) above the platform 128 to capture top-view images 104 of items102 placed on the platform 128.

Similarly, the frame structure 210 may comprise 3D sensors 124 a to 124f positioned on sides and above of the platform 128 as illustrated inFIG. 2 . In the example of FIG. 2 , the frame structure 210 isconfigured to position 3D sensors 124 a and 124 b on one side of theplatform 128, a 3D sensor 124 c on another side of the platform 128, and3D sensors 124 d and 124 e on another side of the platform 128. A 3Dsensor 124 may be integrated with a camera 122 or be separate.

Each of the 3D sensors 124 a to 124 e is configured to capture sidedepth images 106 of items 102 placed on the platform 128. The 3D sensor124 f may be configured to capture top-view depth image 106 of items 102placed on the platform 128.

Each of a perspective image 104 and a perspective depth image 106 isconfigured to capture the side-facing surfaces of items 102 placed onthe platform 128. An example of a top-view depth image 106 of an item102 is described in conjunction with FIGS. 3A and 3B. Each of a top-viewor overhead image 104 or depth image 106 is configured to captureupward-facing surfaces of items 102 placed on the platform 128. Anexample of a perspective image 104 of an item 102 is described inconjunction with FIG. 3B.

In other examples, the frame structure 210 may be configured to supportand position any other suitable number and combination of cameras 122and 3D sensors 124 on any position with respect to the platform 128. Theframe structure 210 may be formed of aluminum, metal, wood, plastic, orany other suitable material.

Additional details of the imaging device 120 are disclosed in U.S. Pat.No. 17/362,261 entitled, “ITEM IDENTIFICATION USING DIGITAL IMAGEPROCESSING” (attorney docket no. 090278.0286) which is herebyincorporated by reference herein as if reproduced in its entirety.

FIGS. 3A and 3B illustrate example top-view depth images 106 of theplatform 128 before and after an item 102 is placed on the platform 128.FIG. 3A illustrates a top-view depth image 106 a of the platform 128captured by the 3D sensor 124 f (see FIG. 2 ) before an item 102 isplaced on the platform 128.

The depth image 106 a shows a substantially constant point cloudindicating that there are no items 102 on the platform 128.Substantially constant point cloud means that there no, minimal, or lessthan a threshold difference between values that represent colors of thecloud of points in the depth image 106 a. The depth image 106 acorresponds to a reference depth image 106 that is captured with noitems 102 are placed on the platform 128. The item tracking engine 144may use the reference depth image 106 to compare with subsequent depthimages 106 and determine whether an item 102 is placed on the platform128.

FIG. 3A illustrates a top-view depth image 106 b of the platform 128captured by the 3D sensor 124 f (see FIG. 2 ) after an item 102 isplaced o the platform 128. In this example, the colors or pixel valueswithin the depth images 106 represent different depth values. In depthimage 106 b, the different depth values correspond with the item 102that is placed on the platform 128.

FIG. 3B illustrates an example perspective image 104 of an item 102detected on the platform 128. The image 104 may be captured by any ofthe cameras 122 described in FIG. 2 . The item tracking engine 144 mayimplement a neural network, e.g., the machine learning algorithm 156 tocrop the image 104 such that the background of the image 104 issuppressed or minimized. This process is described in detail furtherbelow in conjunction with the operational flow 1400 described in FIG. 14.

FIG. 4 illustrates an example embodiment of the training dataset 154.Aspects of the training dataset 154 are described in FIG. 1 , andadditional aspects are described below. In the example of FIG. 4 ,assume that an item 102 a is placed on the platform 128 of the imagingdevice 120. The imaging device 120 capture images 104 of the item 102 ausing the cameras 122. The imaging device 120 sends the images 104 tothe server 140 for processing. The item tracking engine 144 implementsthe machine learning algorithm 156 to extract features 158 from eachimage 104. An image 104 captured from each camera 122 may be added in anew entry 130 in the training dataset 154. In the example of FIG. 4 ,the item tracking engine 144 extracts features 158 a-1 from the image104 a-1. The features 158 a-1 may be represented by the feature vector134 a-1 that comprises a set of numerical values. The item trackingengine 144 extracts features 158 a-2 from the image 104 a-2. Thefeatures 158 a-2 may be represented by the feature vector 134 a-2 thatcomprises a set of numerical values. The item tracking engine 144extracts features 158 a-n from the image 104 a-n. The features 158 a-nmay be represented by the feature vector 134 a-n that comprises a set ofnumerical values. Each image 104 may be labeled or associated with oneor more annotations 136, similar to that described in FIG. 1 .

Example Method for Adding Items to the Training Dataset of an ItemIdentification Model

FIG. 5 illustrates an example flowchart of a method 500 for adding items102 to the training dataset 154 of an item identification model 152.Modifications, additions, or omissions may be made to method 500. Method500 may include more, fewer, or other operations. For example,operations may be performed in parallel or in any suitable order. Whileat times discussed as the system 100, processor 142, item trackingengine 144, imaging device 120 or components of any of thereofperforming operations, any suitable system or components of the systemmay perform one or more operations of the method 500. For example, oneor more operations of method 500 may be implemented, at least in part,in the form of software instructions 150 of FIG. 1 , stored onnon-transitory, tangible, machine-readable media (e.g., memory 148 ofFIG. 1 ) that when run by one or more processors (e.g., processor 142 ofFIG. 1 ) may cause the one or more processors to perform operations502-514.

Method 500 may begin at 502 where the item tracking engine 144 maydetermine that an item 102 is not included in the training dataset 154of the item identification model 152. For example, the item trackingengine 144 may determine that the item 102 is not included in thetraining dataset 154 if it is determined that no images 104 of the item102 are included in the training dataset 154, similar to that describedin FIG. 1 .

At 502, the item tracking engine 144 obtains an identifier 132associated with the item 102. For example, the item tracking engine 144may obtain a scan of a barcode of the item 102, similar to thatdescribed in FIG. 1 .

At 504, the item tracking engine 144 determines whether a triggeringevent 108 is detected. The triggering event 108 may correspond to a userplacing the item 102 on the platform 128. Various embodiments ofdetermining whether a triggering event 108 is detected are described inFIG. 1 . If the item tracking engine 144 determines that the triggeringevent 108 is detected, method 500 proceeds to 508. Otherwise, method 500remains at 506 until it is determined that the triggering event 108 isdetected.

At 508, the imaging device 120 captures images 104 of the item 102,e.g., using the cameras 122. For example, the item tracking engine 144may send a signal to the imaging device 120 to capture images 104 of theitem 102. The imaging device 120 may send the images 104 to the server140.

At 510, the item tracking engine 144 extracts a set of features 158associated with the item 102 from the images 104. In this process, theitem tracking engine 144 may feed each image 104 to the machine learningalgorithm 156 to extract features 158 associated with the item 102,similar to that described in FIG. 1 . Similarly, the item trackingengine 144 may extract the set of features 158 from depth images 106 ofthe item 102.

At 512, the item tracking engine 144 associates the item 102 to theidentifier 132 and the set of features 158.

At 514, the item tracking engine 144 adds a new entry 130 for the item102 to the training dataset 154.

In certain embodiments, the item tracking engine 144 may be configuredto remove an item 102 from the training dataset 154. For example, if anitem 102 is removed from a physical store, the item 102 may be removedfrom the training dataset 154.

Example System for Capturing Images for Training an Item IdentificationModel

FIG. 6 illustrates one embodiment of a system 600 that is configured tocapture images 104 and/or depth images 106 for training an itemidentification model 152. In one embodiment, system 600 comprises theserver 140. In some embodiments, system 600 further comprises thenetwork 110, an imaging device 620, and a weight sensor 626. In otherembodiments, system 600 may not have all of the components listed and/ormay have other elements instead of, or in addition to, those listedabove. Aspects of certain components of the system 600 are describedabove in FIGS. 1-5 , and additional aspects are described below. Thenetwork 110 enabled communication between components of the system 600.Server 140 comprises the processor 142 in signal communication with thememory 148. Memory 148 stores software instructions 610 that whenexecuted by the processor 142, cause the processor 142 to perform one ormore functions described herein. For example, when the softwareinstructions 610 are executed, the processor 142 executes the itemtracking engine 144 to detect one or more items 102 placed on theplatform 628, and add a new entry for each detected item 102 to thetraining dataset 154. This operation is described further below inconjunction with an operational flow of the system 600 and method 900described in FIG. 9 .

The system 600 may further be configured to aggregate correspondingfeatures 158 of an item 102 extracted from different images 104 of theitem 102 and add the aggregated value for the feature 158 to a trainingdataset 154 of the item identification model 152. The system 600 mayperform a similar operation for each corresponding feature 158 suchas: 1) one or more dominant colors of an item 102; 2) a dimension of anitem 102; 3) a weight of an item 102; and 4) any other feature 158 of anitem 102 described in FIG. 1 . This operation is described further belowin conjunction with an operational flow 1000 of the system 600 describedin FIG. 10 and method 1100 described in FIG. 11 .

System Components Example Imaging Device

Imaging device 620 is generally configured to capture images 104 anddepth images 106 of items 102 that are placed on the platform 628 of theimaging device 620. In one embodiment, the imaging device 620 comprisesone or more cameras 622, one or more 3D sensors 624, and a platform 628.Example embodiments of hardware configurations of the imaging device 620are described in FIGS. 7 and 8 .

In certain embodiments, each of the cameras 622 and 3D sensors 624 maycorrespond to and/or be an instance of camera 122 and 3D sensor 124described in FIG. 1 , respectively.

The platform 628 comprises a surface on which items 102 can be placed.In certain embodiments, the platform 628 may comprise a surface that isconfigured to rotate, such as a turntable.

In certain embodiments, the imaging device 620 may further include aweight sensor 626. The weight sensor 626 may be integrated within theplatform 628, similar to that described in FIGS. 1 and 2 with respect tothe weight sensor 126. In certain embodiments, the weight sensor 626 maybe a distinct device from the imaging device 620. The weight sensor 626may correspond to and/or be an instance of the weight sensor 126described in FIGS. 1 and 2 .

In an embodiment where the weight sensor 626 is distinct from theimaging device 620, the weight sensor 626 may be placed underneath aboard, platform, or a surface where items 102 can be placed.

The items 102 can be weighted by the weight sensor 626. The weightsensor 626 is configured to detect a weight 162 of an item 102. Theweight sensor 626 sends the detected weight 162 to the server 140.

Aspects of the server 140 are described in FIGS. 1 , and additionalaspects are described below. The memory 148 is further configured tostore the software instructions 610, images 104, depth images 106, itemidentification model 152, training dataset 154, identifier 132, features158, machine learning algorithm 156, image capturing operation 630,triggering event 108, weights 162, threshold area 632, signal 634,values 1002 a, 1002 b, and 1002 n, threshold percentage 636, andparticular number 638. The particular number 638 may represent a numberof degrees, such as two, five, ten, or any other number.

Operational Flow for Capturing Images for Training an ItemIdentification Model

In an example operation, the operational flow of system 600 may includeoperations to capture one or more images 104 and/or depth images 106 ofan item 102 for training the item identification model 152.

In one embodiment, the operational flow of system 600 may begin when theitem tracking engine 144 obtains an identifier 132 associated with theitem 102. The identifier 132 associated with the item 102 may include abarcode, a QR code, a product label of the item 102. For example, theitem tracking engine 144 may obtain the identifier 132 of the item 102when a user scans the barcode of the item 102 by using a barcodescanner, similar to that described in FIG. 1 .

The item tracking engine 144 may detect a triggering event 108 at theplatform 628. The triggering event 108 may correspond to a user placingthe item 102 on the platform 628. Various embodiments of detecting thetriggering event 108 are described above in FIG. 1 .

Capturing Image(s) of the Item

The item tracking engine 144 may execute an image capturing operation630 to capture image(s) 104 and/or depth image(s) 106 of the item 102.In this operation, the item tracking engine 144 may cause the platform628 to rotate (as illustrated in FIG. 7 ).

For example, by executing the image capturing operation 630, the itemtracking engine 144 may send a signal 634 to the imaging device 620,where the signal 634 includes instructions to rotate the platform 628.In one embodiment, the platform 628 may rotate in an x-y plane. Incertain embodiments, the platform 628 may rotate one degree at a timeuntil the platform 628 is fully rotated once.

Further, by executing the image capturing operation 630, a signal may besent to cameras 622 to capture images 104 of the item 102 while theplatform 628 is rotating.

In one embodiment, each camera 622 may capture one image 104 of the item102 at each degree of rotation of the platform 628. For example, atdegree=0, each camera 622 may capture one image 104 of the item 102; atdegree=1, each camera 622 may capture one image 104 of the item 102; andso on until one full turn of the platform 628. Thus, in one embodiments,each camera 622 may capture three hundred sixty images 104 of the item102.

In another embodiment, each camera 622 may capture one image 104 of theitem 102 at each plurality of degrees of rotation of the platform 628,e.g., every two degrees, every five degrees, or any suitable number ofdegrees. In certain embodiments, one or more captured images 104 may beoptional and omitted.

In one embodiment, the platform 628 may rotate a particular number ofdegrees at a time. The particular number 638 of degrees may be two,five, ten, or any other number. In one embodiment, one or more cameras622 may not be triggered to capture an image 104 of the item 102.

The item tracking engine 144 may perform a similar operation for 3Dsensors 624. Thus, the image capturing operation 630 may includecapturing depth images 106 of the item 102 while the platform 628 isrotating.

For example, by executing the image capturing operation 630, a signalmay be sent to 3D sensors 624 to capture depth images 106 of the item102 while the platform 628 is rotating.

Each 3D sensor 624 may capture one depth image 106 of the item 102 ateach degree of the rotation of the platform 628.

Thus, in one embodiment, each 3D sensor 624 may capture three hundredsixty depth images 106 of the item 102. In another embodiment, each 3Dsensor 624 may capture one depth image 106 of the item 102 at eachplurality of degrees of rotation of the platform 628, e.g., every twodegrees, every five degrees, or any suitable number of degrees. Incertain embodiments, one or more captured depth images 106 may beoptional and omitted.

Determining an Orientation of the Item

In one embodiment, the item tracking engine 144 may be configured todetermine an orientation of the item 102 with respect to the platform628.

In this process, the item tracking engine 144 may cause a 3D sensor 624to capture a depth image 106 of the item 102 while the platform 628 isturning, similar to that described above. For example, the item trackingengine 144 may cause the 3D sensor 624 f (see FIG. 7 ) to capture anoverhead depth image 106 of the item 102. The overhead depth image 106may be configured to capture upward-facing surfaces of the item 102 onthe platform 628. The 3D sensor 624 may capture the depth image 106 ofthe item 102. The imaging device 620 may send the depth image 106 to theserver 140 for processing.

The item tracking engine 144 may determine an orientation of the item102 with respect to the platform 628 based on the depth image 106, asdescribed below.

The orientation of the item 102 may be vertical or horizontal withrespect to the platform 628. For example, the item tracking engine 144may determine whether the item 102 is positioned in a verticalorientation (e.g., standing position) or in a horizontal orientationwith respect to the platform 628. In the vertical orientation, features158 of an item 102 are primarily in the vertical orientation. In thehorizontal orientation, features 158 of an item 102 are primarily in thehorizontal orientation. Thus, cameras 622 with top-views of the platform628 may be better suited for capturing images 104 of the item 102.

If the item tracking engine 144 determines that the item 102 ispositioned in a horizontal orientation with respect to the platform 628,the item tracking engine 144 may determine that the orientation of theitem 102 is longitudinal with respect to the platform 628. In response,the item tracking engine 144 may cause a subset of cameras 622 that areon top of the platform 628 to capture overhead images 104 of the item102 on the platform 628.

In one embodiment, the item tracking engine 144 may determine theorientation of an item 102 based on a pose of the item detected from thedepth image 106, e.g., standing or laid down.

The item tracking engine 144 may use an area of the item 102 todetermine the orientation of the item 102. Referring to FIG. 3A as anexample, the item tracking engine 144 may determine the area 302 of theitem 102. The item tracking engine 144 may compare the determined area302 with a threshold area 632 (see FIG. 6 ). The item tracking engine144 may determine that the item 102 is in vertical orientation if it isdetermined that the determined area 302 is less than or equal to thethreshold area 632 (see FIG. 6 ). Otherwise, the item tracking engine144 may determine that the item 102 is in a horizontal orientation whenthe determined area 302 is more than the threshold area 632 (see FIG. 6). In the example of FIG. 3A, the item tracking engine 144 determinesthat the item 102 is in vertical orientation because the area 302 isless than the threshold area 632 (see FIG. 6 ).

Extracting Features of the Item from Each Image and Adding a New Entryfor Each Image

Referring back to FIG. 6 , The item tracking engine 144 may extract aset of features 158 from each image 104 of the item 102, where eachfeature 158 corresponds to a physical attribute of the item 102, similarto that described in FIG. 1 . The item tracking engine 144 associatesthe item 102 to the identifier 132 and the set of features 158. The itemtracking engine 144 adds a new entry 130 to the training dataset 154,where the new entry 130 may represent the item 102 labeled with theidentifier 132 and the set of features 158.

In some embodiments, the item 102 in the new entry 130 may further belabeled with a feature vector 134 and/or annotations 136, similar tothat described in FIG. 1 .

In one embodiment, the item tracking engine 144 may be configured toassociate the item 102 with a weight 162. In this operation, the itemtracking engine 144 may receive a plurality of weights 162 of multipleinstances of the item 102. For example, multiple instances of the item102 may be placed on the weight sensor 626 and weighed by the weightsensor 626. The item tracking engine 144 may determine a mean of theweights 162 of the multiple instances of the item 102. The item trackingengine 144 may associate the mean of the weights 162 of the multipleinstances of the item 102 to the item 102. The item tracking engine 144may add the mean of the weights 162 of the item 102 to the new entry 130in the training dataset 154, e.g., in the annotations 136.

Example Imaging Device

FIG. 7 illustrates a perspective view of an embodiment of an imagingdevice 620. In this example, the imaging device 620 comprises aplurality of cameras 622, a plurality of 3D sensors 624, a platform 628,and a frame structure 710. The imaging device 620 may be configured asshown in FIG. 7 , or in any other suitable configuration. In someembodiments, the imaging device 620 may further comprise additionalcomponents, including, but not limited to, light, displays, andgraphical user interfaces.

The platform 628 comprises a surface 712 that is configured to hold oneor more items 102. In some embodiments, the platform 628 may beconfigured to rotate. For example, the platform 628 may rotate in an x-yplane around the z-axis at its center point. The platform 628 may beoperably coupled to a circuit board 714. The circuit board 714 maycomprise a hardware processor (e.g., a microprocessor) in signalcommunication with a memory, and/or circuitry (not shown) configured toperform any of the functions or actions of the circuit board 714described herein. For example, the circuit board 714 may be configuredto rotate the platform 628 in response to receiving a signal 634 (seeFIG. 6 ) from the item tracking engine 144. The circuit board 714 may becommunicatively coupled to the server 140, for example, wirelessly(e.g., via WiFi, Bluetooth, other wireless communication protocols)and/or through wires. The platform 628 may receive a signal 634 (seeFIG. 6 ) from the item tracking engine 144, where the signal 634 mayinclude electrical signals to cause the platform 628 to rotate.

In one embodiment, the platform 628 may rotate one degree at a timeuntil the platform 628 is fully rotated once. In one embodiment, atleast one camera 622 may be triggered to capture one image 104 of theitem 102 on the platform 628 at each degree of rotation of the platform628.

In another embodiment, the platform 628 may rotate a particular number638 of degrees at a time, e.g., every two degrees, every five degrees,or any other suitable number of degrees. In one embodiment, at least onecamera 622 may be triggered to capture one image 104 of the item 102 onthe platform 628 at each of a plurality of degrees of rotation of theplatform 628, e.g., every two degrees, every five degrees, or any othersuitable number of degrees, similar to that described in FIG. 6 .

In one embodiment, at least one 3D sensor 624 may be triggered tocapture one depth image 106 of the item 102 on the platform 628 at eachdegree of rotation of the platform 628.

In another embodiment, at least one 3D sensor 624 may be triggered tocapture one depth image 106 of the item 102 on the platform 628 at eachof a plurality of degrees of rotation of the platform 628, e.g., everytwo degrees, every five degrees, or any other suitable number ofdegrees, similar to that described in FIG. 6 .

In some embodiments, at least a portion of the surface 712 may betransparent. In this case, a camera 622 may be disposed below thesurface 712 of the platform 628 and configured to capture images 104 ofthe bottom(s) of item(s) on the platform 628. Similarly, a scanner(e.g., a barcode scanner, a QR code scanner) may be disposed below thesurface 712 of the platform 628 and configured to scan the bottom(s) ofthe item(s) 102 on the platform 628. For instance, a camera 622 and/orscanner may be configured to identify and read product labels, barcodes,and/or QR codes of items 102 through the transparent surface 712 of theplatform 628. The platform 628 may be formed of aluminum, metal, wood,plastic, glass, or any other suitable material.

The frame 710 may comprise a set of rails that are assembled to hold thecameras 622 and 3D sensors 624. The frame 710 is generally configured tosupport and position cameras 622 and 3D sensors 624. In the example ofFIG. 7 , the frame structure 710 is configured to position cameras 622 ato 622 f.

A first subset of cameras 622 may be positioned at one or more heightswith respect to the platform 628 on a side of the platform 628. In theexample of FIG. 7 , cameras 622 a to 622 c are positioned at threedifferent heights with respect to the platform 628. The cameras 622 a to622 c are arranged vertically on a rail 716. The rail 716 is on a sideof the platform 628 adjacent to the platform 628. The cameras 622 a to622 c have perspective views of the platform 628. Thus, the cameras 622a to 622 c are configured to capture perspective images 104 of item 102placed on the platform 628. In some embodiments, any number of cameras622 may be placed on one or more rails 716.

A second subset of cameras 622 may be positioned above the platform 628.In the example of FIG. 7 , cameras 622 d to 622 f are positioned abovethe platform 628. The cameras 622 d to 622 f are arranged to form atriangle.

The cameras 622 d to 622 f have top-views of the platform 628. Thus, thecameras 622 d to 622 f are configured to capture overhead images 104 ofitem 102 placed on the platform 628. In some embodiments, any numberand/or combination of cameras 622 may be positioned above the platform628.

The frame structure 710 may be configured to position 3D sensors 624. Incertain embodiments, any number and/or any combination of cameras 622may be integrated with a 3D sensor 624. In certain embodiments, a camera622 and a 3D sensor 624 may be distinct devices.

In certain embodiments, the frame structure 710 may be configured toposition 3D sensors 624 a to 624 f. A first subset of 3D sensors 624 maybe positioned at one or more heights with respect to the platform 628 ona side of the platform 628.

The first subset of 3D sensors 624 may have perspective views of theplatform 628. Thus, the first subset of 3D sensors 624 may be configuredto capture perspective depth images 106 of item 102 placed on theplatform 628. In some embodiments, any number of 3D sensors 624 may beplaced on one or more rail 716.

A second subset of 3D sensors 624 may be positioned above the platform628. In the example of FIG. 7 , 3D sensors 624 d to 624 f may bepositioned above the platform 628. The second subset of 3D sensors 624is arranged to form a triangle. The second subset of 3D sensors 624 havetop-views of the platform 628. Thus, the second subset of 3D sensors 624may be configured to capture overhead depth images 106 of item 102placed on the platform 628. In some embodiments, any number and/orcombination of 3D sensors 624 may be positioned above the platform 628.

In other examples, the frame structure 710 may be configured to supportand position any other suitable number and combination of cameras 622and 3D sensors 624. The frame structure 710 may be formed of aluminum,metal, wood, plastic, or any other suitable material.

FIG. 8 illustrates a perspective view of another embodiment of animaging device 620 with an enclosure 810. In this configuration, theenclosure 810 is configured to at least partially encapsulate the framestructure 710, the cameras 622, the 3D sensors 624, and the platform 628of the imaging device 620. The frame structure 710, the cameras 622, the3D sensors 624, and the platform 628 may be similar to that described inFIGS. 6 and 7 .

In some embodiments, the enclosure 810 may be formed from a clothmaterial, a fabric, plastic alloys, and/or any other suitable material.The enclosure 810 is configured to provide a lighting condition for theinterior of the imaging device 620 that is more than a thresholdlighting condition quality. For example, the enclosure 810 may provide abrightness that is more than a threshold brightness level.

Example Method for Capturing Images for Training an Item IdentificationModel

FIG. 9 illustrates an example flowchart of a method 900 for capturingimages 104 and/or depth images 106 for training an item identificationmodel 152. Modifications, additions, or omissions may be made to method900. Method 900 may include more, fewer, or other operations. Forexample, operations may be performed in parallel or in any suitableorder. While at times discussed as the system 600, processor 142, itemtracking engine 144, imaging device 620 or components of any of thereofperforming operations, any suitable system or components of the systemmay perform one or more operations of the method 900. For example, oneor more operations of method 900 may be implemented, at least in part,in the form of software instructions 610 of FIG. 6 , stored onnon-transitory, tangible, machine-readable media (e.g., memory 148 ofFIG. 6 ) that when run by one or more processors (e.g., processor 142 ofFIG. 6 ) may cause the one or more processors to perform operations902-914.

Method 900 begins at 902 where the item tracking engine 144 obtains anidentifier 132 associated with the item 102. For example, the itemtracking engine 144 may obtain a scan of a barcode of the item 102,similar to that described in FIGS. 1 and 6 .

At 904, the item tracking engine 144 determines whether a triggeringevent 108 is detected. The triggering event 108 may correspond to a userplacing the item 102 on the platform 128. Various embodiments ofdetermining whether a triggering event 108 is detected are described inFIGS. 1 and 6 . If the item tracking engine 144 determines that thetriggering event 108 is detected, method 900 proceeds to 906. Otherwise,method 900 remains at 904 until it is determined that the triggeringevent 108 is detected.

At 906, the item tracking engine 144 causes the platform 628 to rotate.For example, the item tracking engine 144 may transmit a signal 634 tothe circuit board 714 of the platform 628, where the signal 634 includeselectrical signals to rotate the platform 628, similar to that describedin FIGS. 6 and 7 . In one example, the signal 634 may includeinstructions to rotate the platform 628 one degree at a time. Inresponse, the platform 628 may rotate one degree at a time until onefull rotation. In another example, the signal 634 may includeinstructions to rotate the platform 628 a particular number 638 ofdegrees at a time, e.g., every two degrees, every five degree, or anyother suitable number of degrees. In response, the platform 628 mayrotate the particular number 638 of degrees at a time until one fullrotation.

At 908, the item tracking engine 144 causes one or more cameras 622 tocapture one or more images 104 of the item 102 placed on the platform628. In one example, one or more cameras 622 may be triggered to captureone image 104 of the item 102 on the platform 628 at each degree of therotation of the platform 628, based on the instructions included in thesignal 634. Similarly, one or more 3D sensors 624 may be triggered tocapture one depth image 106 of the item on the platform 628 at eachdegree of the rotation of the platform 628. In another example, one ormore cameras 622 may be triggered to capture one image 104 of the item102 on the platform 628 at each of a plurality of degrees of rotation ofthe platform 628 based on the instructions included in the signal 634.Similarly, one or more 3D sensors 624 may be triggered to capture onedepth image 106 of the item on the platform 628 at each of the pluralityof degrees of rotation of the platform 628.

At 910, the item tracking engine 144 extracts a set of features 158associated with the item 102 from the one or more images 104. Forexample, the item tracking engine 144 may feed the one or more images104 to the machine learning algorithm 158 to extract the set of features158 of the item 102, similar to that described in FIGS. 1 to 5 .Similarly, the item tracking engine 144 may extract the set of features158 from depth images 106 of the item 102. Examples of the set offeatures 158 are described in FIGS. 1 to 5 .

At 912, the item tracking engine 144 adds a new entry 130 for the item102 to the training dataset 154 of the item identification model 152.The new entry 130 may be used to later identify the item 102, similar tothat described in FIGS. 1 to 5 .

Operational Flow for Identifying Items Based on Aggregated Metadata

FIG. 10 illustrates an example of an operational flow 1000 of the system600 of FIG. 6 for identifying items 102 based on aggregated metadata. Asdiscussed in FIG. 6 , system 600 may be configured to identify items 102based on aggregated metadata. The aggregated metadata may includeaggregated features 158 captured from different images 104 of an item102 placed on the platform 628.

As described in FIGS. 6 to 9 , multiple images 104 may be captured ofthe item 102 placed on the platform 628 while the platform 628 isrotating. Each image 104 of the item 102 may be from a different angleand show a different side of the item 102. Thus, the item trackingengine 144 may extract a different set of features 158 from each image104 of the item 102. Thus, system 600 may be configured to aggregatefeatures 158 from the different sets of features 158 to produce a moreaccurate representation and description of the item 102. This operationis described below in conjunction with the operational flow 1000 of thesystem 600 described in FIG. 6 and method 1100 described in FIG. 11 .

The operational flow 1000 begins when the item tracking engine 144obtains a plurality of images 104 of an item 102 (e.g., item 102 a).

Extracting a Set of Features from Each Image of the Item

The item tracking engine 144 may obtain the plurality of images 104 ofthe item 102 a from the imaging device 520. In the example of FIG. 10 ,the item tracking engine 144 obtains images 104 a, 104 b, 104 n, amongother images 104 of the item 102 a.

The item tracking engine 144 may feed each image 104 of the item 102 ato the machine learning algorithm 156 to extract a set of features 158associated with the item 102 a from the image 104. For example, the itemtracking engine 144 may extract a first set of features 158 a-1 from thefirst image 104 a of the item 102 a, where the first set of features 158a-1 may be represented by a first feature vector 134 a-1. Similarly, theitem tracking engine 144 may extract a second set of features 158 a-2from the second image 104 b of the item 102 b, where the second set offeatures 158 a-2 may be represented by a second feature vector 134 a-2;and extract an n-th set of features 158 a-n from the n-th image 104 n ofthe item 102 a, where the n-th set of features 158 a-n may berepresented by an n-th feature vector 134 a-n.

Aggregating Corresponding Features from Different Feature Vectors

The item tracking engine 144 may perform the following operations foreach feature 158 of the item 102 a. The item tracking engine 144 mayidentify a first feature 158 of the item 102 a in each feature vector134 a-1, 134 a-2, and 134 a-n. For example, the first feature 158 of theitem 102 a may be one or more dominant colors, a dimension, a weight, ashape, a logo, or any other feature 158 described in FIG. 1 .

The item tracking engine 144 may identify a first value 1002 a of thefirst feature 158 of the item 102 a from the first image 104 a. Thefirst value 1002 a of the first feature 158 may be represented by anarray of numerical values, such as [a, . . . , n], where “a” and “n”represent numerical values.

Similarly, the item tracking engine 144 may identify a second value 1002b of the first feature 158 of the item 102 a from the second image 104b. The second value 1002 b of the first feature 158 may be representedby an array of numerical values, such as [b, . . . , m], where “b” and“m” represent numerical values.

Similarly, the item tracking engine 144 may identify an n-th value 1002n of the first feature 158 of the item 102 a from the n-th image 104 n.The n-th value 1002 n of the first feature 158 of the item 102 a may berepresented by an array of numerical values, such as [c, . . . , o],where “c” and “o” represent numerical values. The item tracking engine144 may identify other values 1002 of the first feature 158 from otherimages 104 of the item 102.

The item tracking engine 144 may determine an aggregated value 1004 forthe first feature 158 of the item 102 a by aggregating two or more ofthe values 1002 a, 1002 b, 1002 n, and other values 1002 of the firstfeature 158. The item tracking engine 144 may associate the item 102 awith the aggregated value 1004 for the first feature 158.

The item tracking engine 144 may add a new entry 130 for each image 104to the training dataset 154 (see FIG. 6 ), similar to that described inFIGS. 1, 5, 6, and 9 . The item tracking engine 144 may add theaggregated value 1004 for the first feature 158 to the new entry 130.The item tracking engine 144 may perform a similar operation for eachfeature 158 of the item 102 a.

For example, with respect to a second feature 158 of the item 102 a, theitem tracking engine 144 may identify a first value 1002 a of the secondfeature 158 of the item 102 a in the first feature vector 134 a-1, asecond value 1002 b of the second feature 158 of the item 102 a in thesecond feature vector 134 a-2, an n-th value 1002 n of the secondfeature 158 of the item 102 a in the n-th feature vector 134 a-n, amongother values 1002 of the second feature 158 of the item 102 a in otherfeature vectors 134 extracted from other images 104 of the item 102 a.

The item tracking engine 144 may determine an aggregated value 1004 forthe second feature 158 by aggregating two or more values 1002 of thesecond feature 158 of the item 102 a.

The item tracking engine 144 may add the aggregated value 1004 for thesecond feature 158 to the new entry 130 in the training dataset 154.This information may be used for identifying the item 102 a.

The operation of aggregating the values 1002 of a feature 158 may varydepending on the feature 158. Various use cases of aggregating thevalues 1002 of a feature 158 are described below.

Case where the Feature is One or More Dominant Colors of the Item

In a case where the feature 158 is one or more dominant colors of theitem 102 a, the item tracking engine 144 may perform one or moreoperations below to aggregate the one or more dominant colors detectedfrom different images 104 of the item 102 a.

The item tracking engine 144 may identify one or more first dominantcolors of the item 102 a from the first image 104 a of the item 102 a.Each dominant color may be determined based on determining a number ofpixels (with the dominant color) that is higher than other pixels (withother colors).

In one embodiment, the item tracking engine 144 may identify aparticular number 166 of dominant colors, e.g., three, five, or anysuitable number of dominant colors, by implementing the machine learningalgorithm 156. To this end, the item tracking engine 144 may determinepixel colors that illustrate the item 102 a in the first image 104 a,determine percentages of numbers of pixels based on their colors, rankthem in descending order, and determine the top particular number 166 ofdominant colors, similar to that described in FIG. 1 .

The item tracking engine 144 may determine a percentage of a particulardominant color of the item 102 a in the image 104 a by determining aratio of a number of pixels that have the particular dominant color inrelation to the total number of pixels illustrating the item 102 a inthe image 104 a.

In one embodiment, the item tracking engine 144 may identify one or moredominant colors that have percentages of a number of pixels more than athreshold percentage 164, for example, by implementing the machinelearning algorithm 156, similar to that described in FIG. 1 .

In this process, the item tracking engine 144 may determine pixel colorsthat illustrate the item 102 a in the first image 104 a, determinepercentages of numbers of pixels based on their colors, rank them indescending order, and determine one or more dominant colors of the item102 a that have percentages of a number of pixels more than a thresholdpercentage 164, e.g., more than 40%, 45%, etc.

The item tracking engine 144 may perform a similar operation fordetermining one or more dominant colors of the item 102 a from thesecond image 104 a, n-th image 104 n, and other images 104 of the item102 a.

The item tracking engine 144 may cluster the dominant colors detected inthe images 104 a, 104 b, 104 n, and other images 104 of the item 102 a.In one embodiment, the item tracking engine 144 may determine the one ormore dominant colors of the item 102 a by determining which dominantcolors from among the dominant colors detected in the images 104 havepercentages more than a threshold percentage 636, e.g., more than 40%,45%, etc.

In an example scenario, assume that the item tracking engine 144determines one or more first dominant colors of the item 102 a from thefirst image 104 a of the item 102 a, and one or more second dominantcolors of the item 102 a from the second image 104 b of the item 102 a.The item tracking engine 144 may determine which dominant colors fromamong the one or more first dominant colors and the one or more seconddominant colors have percentages more than the threshold percentage 636.The item tracking engine 144 may perform a similar operation fordominant colors detected in other images 104 of the item 102 a.

In one embodiment, the item tracking engine 144 may determine aparticular number 166 of dominant colors of the item 102 a bydetermining the top particular number of dominant colors from among thedominant colors detected in the images 104.

In this manner, the item tracking engine 144 may determine the one ormore overall dominant colors of the item 102 a detected in differentimages 104 of the item 102 a by clustering the dominant colors detectedin different images 104 of the item 102 a. The item tracking engine 144may associate the one or more detected dominant colors to the item 102a. The item tracking engine 144 may add the one or more detecteddominant colors to the new entry 130. This information may be used foridentifying the item 102 a.

Case where the Feature is a Weight of the Item

In a case where the feature 158 is a weight 162 of the item 102 a, theitem tracking engine 144 may perform one or more operations below toaggregate multiple weights 162 of multiple instances of the item 102 a.

The item tracking engine 144 may receive a plurality of weights 162 ofmultiple instances of the item 102 a. For example, the item trackingengine 144 may receive a plurality of weights 162 of multiple instancesof the item 102 a when a user places the multiple instances of the item102 a (e.g., five, six, or any number of instances of the item 102 a) onthe weight sensor 626 (see FIG. 60 ) and the weight sensor 626 (see FIG.6 ) measure the overall weights 162 of the multiple instances of theitem 102 a.

The weight sensor 626 (see FIG. 6 ) transmits the measured weights 162of the multiple instances of the item 102 a to the server 140. The itemtracking engine 144 may determine a mean of the plurality of weights 162of the multiple instances of item 102 a.

The item tracking engine 144 may associate the mean of the plurality ofweights 162 of the multiple instances of the item 102 a to the item 102a. The item tracking engine 144 may add the mean of the plurality ofweights 162 of the multiple instances of the item 102 a to the new entry130. This information may be used for identifying the item 102 a.

Case where the Feature is the Dimension of the Item

In a case where the feature 158 is a dimension of the item 102 a, theitem tracking engine 144 may perform one or more operations below toaggregate multiple dimensions of the item 102 a detected from multipleimages 104.

As discussed in FIG. 1 , the dimension of the item 102 a may berepresented by a length, a width, and a height of the item 102 a. Sincedifferent images 104 of the item 102 a show different sides of the item102 a, multiple dimensions of the item 102 a may be measured frommultiple images 104 of the item 102 a. For example, the item trackingengine 144 (e.g., via the machine learning algorithm 156) may measure afirst dimension of the item 102 a from the first image 104 a, a seconddimension of the item 102 a from the second image 104 b, an n-thdimension of the item 102 a from the n-th image 104 n, and otherdimensions of the item 102 a from other images 104.

The item tracking engine 144 may determine the dimension of the item 102a by determining a mean of the multiple dimensions of the item 102 ameasured from multiple images 104 of the item 102 a. The item trackingengine 144 may associate the mean of multiple dimensions of the item 102a to the item 102 a. The item tracking engine 144 may add the mean ofthe multiple dimensions of the item 102 a to the new entry 130. Thisinformation may be used for identifying the item 102 a.

Case where the Feature is a Mask Around the Item

In a case where the feature 158 is a mask that defines a contour aroundthe item 102 a, the item tracking engine 144 may perform one or moreoperations below to aggregate masks of the item 102 a detected inmultiple images 104 of the item 102 a.

The item tracking engine 144 may identify multiple masks around the item102 a from multiple images 104 of the item 102 a. For example, the itemtracking engine 144 may identify a first mask that defines a firstcontour around the item 102 a in the first image 104 a, a second maskthat defines a second contour around the item 102 a, and other masksaround the item 102 a from other images 104.

The item tracking engine 144 may compare the first mask with the secondmask. The item tracking engine 144 may determine differences between thefirst mask (detected in the first image 104 a) and the second mask(detected in the second image 104 b).

Based on the determined differences between the first mask and secondmask, the item tracking engine 144 may determine at least a portion of athree-dimensional mask around the item 102 a.

The item tracking engine 144 may perform a similar operation for everytwo adjacent images 104. For example, the item tracking engine 144 maydetermine a first set of differences between the first mask (detected inthe first image 104 a) and the second mask (detected in the second image104 b); a second set of differences between the second mask (detected inthe second image 104 b) and a third mask (detected in a third image104); and so on. The item tracking engine 144 may combine the multiplemasks of the item 102 a detected from different images 104.

The item tracking engine 144 may determine a three-dimensional maskaround the item 102 a based on the differences between the multiplemasks of the item 102 a, and the combined masks of the item 102 a. Theitem tracking engine 144 may associate the three-dimensional mask of theitem 102 a to the item 102 a. The item tracking engine 144 may add thethree-dimensional mask of the item 102 a to the new entry 130. Thisinformation may be used for identifying the item 102 a. The itemtracking engine 144 may identify the item 102 a based on the features158 associated with the item 102 a, similar to that described in FIG. 1.

In one embodiment, the item tracking engine 144 may determine thethree-dimensional mask around the item 102 a if the item tracking engine144 fails to identify the item 102 a using one or more two-dimensionalmasks. In other words, determining the three-dimensional mask around theitem 102 a is in response to determining that the item 102 a is notidentified based on the two-dimensional mask of the item 102 a.

Example Method for Identifying Items Based on Aggregated Metadata

FIG. 11 illustrates an example flowchart of a method 1100 foridentifying items 102 based on aggregated metadata. Modifications,additions, or omissions may be made to method 1100. Method 1100 mayinclude more, fewer, or other operations. For example, operations may beperformed in parallel or in any suitable order. While at times discussedas the system 600, processor 142, item tracking engine 144, imagingdevice 620, or components of any of thereof performing operations, anysuitable system or components of the system may perform one or moreoperations of the method 1100. For example, one or more operations ofmethod 1100 may be implemented, at least in part, in the form ofsoftware instructions 610 of FIG. 6 , stored on non-transitory,tangible, machine-readable media (e.g., memory 148 of FIG. 6 ) that whenrun by one or more processors (e.g., processor 142 of FIG. 6 ) may causethe one or more processors to perform operations 1102-1116.

Method 1100 begins at 1102 where the item tracking engine 144 obtains aplurality of images 104 of an item 102. The item tracking engine 144 mayobtain the plurality of images 104 of the item 102 from the imagingdevice 520, similar to that described in FIGS. 6 and 10 .

At 1104, the item tracking engine 144 extracts a set of feature 158associated with the item 102 from each image of the plurality of images104. For example, the item tracking engine 144 may feed each image 104to the machine learning algorithm 156 to extract a set of features 158,similar to that described in FIGS. 1 and 10 . Similarly, the itemtracking engine 144 may extract the set of features 158 from depthimages 106 of the item 102, similar to that described in FIGS. 1 and 10. Examples of the set of features 158 are described in FIGS. 1 and 10 .

At 1106, the item tracking engine 144 selects a feature 158 from amongthe set of features 158. The item tracking engine 144 may iterativelyselect a feature 158 until no feature 158 is left for evaluation.

At 1108, the item tracking engine 144 identifies a plurality of values1002 that represent the feature 158 from each image 104 of the item 102.For example, the item tracking engine 144 may identify a first value1002 a that represents the feature 158 from the first image 104 a, asecond value 1002 b that represents the feature 158 from the secondimage 104 b, and so on, similar to that described in FIG. 10 .

At 1110, the item tracking engine 144 aggregates the plurality of values1002 that represents the feature 158. The operation of aggregating theplurality of values 1002 of a feature 158 may vary depending on thefeature 158. Various use cases of aggregating the values 1002 of afeature 158 are described in FIG. 10 .

At 1112, the item tracking engine 144 associates the item 102 with theaggregated plurality of values 1002.

At 1114, the item tracking engine 144 determines whether to selectanother feature 158. The item tracking engine 144 may determine toselect another feature 158 if at least one feature 158 is left forevaluation. If the item tracking engine 144 determines to select anotherfeature 158, method 1100 may return to 1106. Otherwise, method 1100 mayproceed to 1116.

At 1116, the item tracking engine 144 adds a new entry 130 for eachimage 104 to the training dataset 154 associated with the itemidentification model 152. In this manner, the item tracking engine 144may use aggregated metadata to identify the item 102.

Example System for Refining an Item Identification Model Based onFeedback

FIG. 12 illustrates one embodiment of a system 1200 that is configuredto refine an item identification model 152 based on feedback 1220. Inone embodiment, system 1200 comprises the network 110, the imagingdevice 120, the server 140, and a computing device 1210. Aspects of thenetwork 110, the imaging device 120, and the server 140 are described inFIGS. 1-5 , additional aspects are described below. Network 110 enablesthe communication between components of the system 1200. Server 140comprises the processor 142 in signal communication with the memory 148.Memory 148 stores software instructions 1250 that when executed by theprocessor 142, cause the processor 142 to perform one or more functionsdescribed herein. For example, when the software instructions 1250 areexecuted, the processor 142 executes the item tracking engine 144 torefine the item identification model 152 based on feedback 1220. Inother embodiments, system 1200 may not have all of the components listedand/or may have other elements instead of, or in addition to, thoselisted above.

In an example scenario, assume that a user 1202 is adding an item 102 toa shopping cart at a store. The user 1202 may place the item 102 on theplatform 128 of the imaging device 120 so the cameras 122 of the imagingdevice 120 can capture images 104 of the item 102. The cameras 122 ofthe imaging device 120 capture images 104 of the item 102. The imagingdevice 120 transmits the images 104 to the item tracking engine 144. Theitem tracking engine 144 may feed the images 104 to the machine learningalgorithm 156 of the item identification model 152 to identify the item102. In some cases, the item 102 in the captured images 104 may beobstructed by other items 102. In some cases, the item 102 may not becompletely shown in the images 104. In such cases, the item 102 may beidentified incorrectly by the item tracking engine 144, for example,because features 158 of the item 102 extracted from the images 104 maynot accurately describe the item 102. Thus, the system 1200 may beconfigured to refine the item identification model 152 based on feedback1220. This operation is described in conjunction with the operationalflow 1300 of the system 1200 described in FIG. 13 and method 1500described in FIG. 15 .

In some cases, a captured image 104 of an item 102 may include abackground portion that shows the area beside the item 102. Thebackground portion in the image 104 may cause the item tracking engine144 to not be able to extract accurate features 158 of the item 102. Forexample, additional information that is extracted from the backgroundportion may reduce the accuracy of item identification. Thus, system1200 may be configured to suppress or minimize the background section inan image 104 by performing a background suppression operation 1402. Thisprocess is described in conjunction with the operational flow 1400 ofthe system 1200 described in FIG. 14 .

System Components

Aspects of the server 140 are described in FIGS. 1-5 , additionalaspects are described below. The memory 148 is further configured tostore the software instructions 1250, feedback 1220, backgroundsuppression operation 1402, triggering event 108, signal 1214,percentages 1414, and threshold values 1416.

Computing device 1210 is generally any device that is configured toprocess data and interact with users. Examples of the computing device1210 include, but are not limited to, a personal computer, a desktopcomputer, a workstation, a server, a laptop, a tablet computer, etc. Thecomputing device 1210 may include a user interface, such as a display, amicrophone, keypad, or other appropriate terminal equipment usable by auser. The computing device 1210 may include a hardware processor,memory, and/or circuitry configured to perform any of the functions oractions of the computing device 1210 described herein. For example, asoftware application designed using software code may be stored in thememory and executed by the processor to perform the functions of thecomputing device 1210.

A graphical user interface 1212 may be accessed from the computingdevice 1210. When one or more items 102 are placed on the platform 128,the imaging device 120 may capture one or more images 104 and/or depthimages 106 from the one or more items 102. The imaging device 120 maytransmit the captured images 104 and depth images 106 to the server 140.The item tracking engine 144 may identify the one or more items 102 byfeeding the captured images 104 and/or the depth images 106 to themachine learning algorithm 156. The item tracking engine 144 may presentthe identified items 102 on the graphical user interface 1212. A user1202 can view the identified items 102 on the graphical user interface1212. The user 1202 may indicate, on the graphical user interface 1212,whether each item 102 is identified correctly, for example, by pressinga button on the graphical user interface 1212. Thus, the user 1202 canprovide feedback 1220 indicating whether each item 102 is identifiedcorrectly. The feedback 1220 is transmitted to the server 140 from thecomputing device 1210. The item tracking engine 144 may use the providedfeedback 1220 to refine the item identification model 152. This processis described in conjunction with the operational flow 1300 of system1200 described in FIG. 13 and method 1500 described in FIG. 15 .

Operational Flow for Refining an Item Identification Model Based onFeedback

FIG. 13 illustrates an example of an operational flow 1300 of the system1200 of FIG. 12 for refining an item identification model 152 based onfeedback 1220.

Capturing Images of an Item

The operational flow 1300 may begin when the item tracking engine 144detects a triggering event 108 at the platform 128, similar to thatdescribed in FIG. 1 . In response, the imaging device 120 may captureone or more images 104 of one or more items 102 that are placed on theplatform 128 of the imaging device 120. As noted above, an item 102 maybe obstructed by other items 102 in an image 104 or otherwise not fullyvisible in the image 104. The imaging device 120 transmits the one ormore images 104 of one or more items 102 to the server 140.

The item tracking engine 144 may perform one or more operations belowfor each of the one or more images 104. The item tracking engine 144 mayfeed the image 104 of the item 102 to the machine learning algorithm 156of the item identification model 152. The item tracking engine 144 mayextract a set of features 158 associated with the item 102 from theimage 104.

Similarly, the imaging device 120 may capture one or more depth images106 of the one or more items 102 placed on the platform 128 of theimaging device 120. The imaging device 120 may transmit the one or moredepth images 106 to the server 140. The item tracking engine 144 mayfeed each of the one or more depth images 106 to the machine learningalgorithm 156, and extract the set of features 158 associated with theitem 102 from each depth image 106. The process of extracting a set offeatures 158 associated with the item 102 is described in FIG. 1 . Theitem tracking engine 144 may identify the item 102 based on theextracted set of features 158, similar to that described in FIG. 1 .

Determining Whether the Item is Identified Correctly

The item tracking engine 144 may determine whether the item 102 isidentified correctly. In this process, the item tracking engine 144 maypresent the identified item 102 on the graphical user interface 1212. Ifthe item tracking engine 144 receives a signal 1214 from the graphicaluser interface 1212 indicating that the item 102 is not identifiedcorrectly, the item tracking engine 144 determines that the item 102 isnot identified correctly. If the item tracking engine 144 receives asignal 1214 from the graphical user interface 1212 indicating that theitem 102 is identified correctly, the item tracking engine 144determines that the item 102 is identified correctly.

For example, the graphical user interface 1212 may include a firstbutton 1216 a that a user 1202 can press to indicate that the item 102is identified correctly. In another example, the graphical userinterface 1212 may include a second button 1216 b that a user 1202 canpress to indicate that the item 102 is not identified correctly.

If the item tracking engine 144 determines that the item 102 isidentified correctly, the item tracking engine 144 may associate theitem 102 to the user 1202, for example, by adding the item 102 to theshopping cart associated with the user 1202.

If the item tracking engine 144 determines that the item 102 is notidentified correctly, the item tracking engine 144 may refine the itemidentification model 152 based on feedback 1220, as described below.

Refining an Item Identification Model Based on Feedback

In a case where the item 102 is not identified correctly, the user 1202can scan an identifier 132 of the item 102. For example, the user 1202can scan a barcode, a QR code, a label associated with the item 102 by abarcode scanner, a QR code scanner, or any other suitable type ofscanner. The item tracking engine 144 may receive the identifier 132 ofthe item 102.

The item tracking engine 144 may identify the item 102 based on theidentifier 132 of the item 102. The identifier 132 of the item 102 maybe included in the feedback 1220. The item tracking engine 144 may feedthe identifier 132 of the item 102 and the one or more captured images104 of the item 102 to the machine learning algorithm 156 of the itemidentification model 152.

The item tracking engine 144 may retrain the machine learning algorithm156 of the item identification model 152 to learn to associate the item102 to the one or more captured images 104 of the item 102. In thisprocess, the item tracking engine 144 may update weight and bias valuesof perceptrons in neural network layers of the machine learningalgorithm 156. By doing so, the set of features 158 extracted from theone or more images 104 may be updated to present a more accuraterepresentation of the item 102 even from images 104 where the item 102is not fully visible, e.g., where at least a portion of the item 102 isobstructed by other items 102 and/or at least a portion of the item 102is not captured in an image 104.

Thus, the item tracking engine 144 may update the set of features 158associated with the item 102 based on the determined association betweenthe item 102 and the one or more images 104.

Suppressing Background in an Image of an Item

FIG. 14 illustrates an example image 104 of an item 102 on which theitem tracking engine 144 performs a background suppression operation1402 by performing the operational flow 1400. In some cases, a capturedimage 104 of an item 102 may show a background 1408 in addition to theitem 102. For a more optimal identification of the item 102, it may bedesired to reduce or minimize a portion of the image 104 where thebackground is shown. To this end, the item tracking engine 144 mayperform a background suppression operation 1402, as described below.

In this process, the item tracking engine 144 may determine a firstnumber of pixels 1410 that illustrate the item 102 in the image 104. Inother words, the item tracking engine 144 may determine an area in theimage 104 that shows the item 102. Similarly, the item tracking engine144 may determine an overall number of pixels 1412 that form the image104. Thus, the item tracking engine 144 may determine a second number ofpixels (e.g., an area) where the background 1408 is shown.

The item tracking engine 144 may determine a percentage 1414 of thefirst number of pixels 1410 based on a ratio of the first number ofpixels 1410 in relation to the overall number of pixels 1412. The itemtracking engine 144 may determine whether the percentage 1414 of thefirst number of pixels 1410 is less than a threshold percentage 1416.The threshold percentage 1416 may be 80%, 85%, or any other suitablepercentage.

If the item tracking engine 144 determines that the percentage 1414 ofthe first number of pixels 1410 is less than a threshold percentage1416, the item tracking engine 144 may crop at least a portion of thebackground 1408 in the image 104 until the percentage 1414 of the firstnumber of pixels 1410 in relation to the overall number of pixels 1412is more than the threshold percentage 1416. In other words, the itemtracking engine 144 may suppress the background 1408 until thepercentage 1414 of the first number of pixels 1410 that illustrate theitem 102 is more than the threshold percentage 1416. Otherwise, the itemtracking engine 144 may not need to further crop the image 104.

Example Method for Refining an Item Identification Model Based onFeedback

FIG. 15 illustrates an example flowchart of a method 1500 for refiningan item identification model 152 based on feedback 1220. Modifications,additions, or omissions may be made to method 1500. Method 1500 mayinclude more, fewer, or other operations. For example, operations may beperformed in parallel or in any suitable order. While at times discussedas the system 1200, processor 142, item tracking engine 144, imagingdevice 120 or components of any of thereof performing operations, anysuitable system or components of the system may perform one or moreoperations of the method 1500. For example, one or more operations ofmethod 1500 may be implemented, at least in part, in the form ofsoftware instructions 1650 of FIG. 12 , stored on non-transitory,tangible, machine-readable media (e.g., memory 148 of FIG. 12 ) thatwhen run by one or more processors (e.g., processor 142 of FIG. 12 ) maycause the one or more processors to perform operations 1502-1514.

Method 1500 begins at 1502 where the item tracking engine 144 determineswhether a triggering event 108 is detected. The triggering event 108 maycorrespond to a user placing an item 102 on the platform 128. Variousembodiments of determining whether a triggering event 108 is detectedare described in FIGS. 1 and 6 . If the item tracking engine 144determines that the triggering event 108 is detected, method 1500proceeds to 1504. Otherwise, method 1500 remains at 1502 until it isdetermined that the triggering event 108 is detected.

At 1504, the imaging device 120 captures one or more images 104 from anitem 102 that is placed on the platform 128 of the imaging device 120using the cameras 122. Similarly, the imaging device 120 may capture oneor more depth images 106 of the item 102 using 3D sensors 124.

At 1506, the item tracking engine 144 extracts a set of features 158associated with the item 102 from the one or more images 104. In thisprocess, the item tracking engine 144 may feed each image 104 to themachine learning algorithm 156 to extract features 158 associated withthe item 102, similar to that described in FIG. 1 . Similarly, the itemtracking engine 144 may extract the set of features 158 from depthimages 106 of the item 102. Examples of the set of features 158 aredescribed in FIG. 1 .

At 1508, the item tracking engine 144 identifies the item 102 based onthe set of features 158, similar to that described in FIG. 1 .

At 1510, the item tracking engine 144 determines whether the item 102 isidentified correctly. For example, the item tracking engine 144 maydetermine whether the item 102 is identified correctly based on a signal1214 received from a graphical user interface 1212, similar to thatdescribed in FIGS. 12 and 13 . For example, if the item tracking engine144 receives a signal 1214 from the graphical user interface 1212indicating that the item 102 is not identified correctly, the itemtracking engine 144 determines that the item 102 is not identifiedcorrectly. Otherwise, if the item tracking engine 144 receives a signal1214 from the graphical user interface 1212 indicating that the item 102is identified correctly, the item tracking engine 144 determines thatthe item 102 is identified correctly. If it is determined that the item102 is identified correctly, method 1500 proceeds to 1512. Otherwise,method 1500 proceeds to 1514.

At 1512, the item tracking engine 144 associates the item 102 to theuser 1202. For example, the item tracking engine 144 may add the item102 to a shopping cart associated with the user 1202.

At 1514, the item tracking engine 144 receives an identifier 132 of theitem 102. The identifier 132 of the item 102 may include a barcode, a QRcode, a label associated with the item 102. For example, the itemtracking engine 144 may receive the identifier 132 of the item 102 whenthe user 1202 scans the identifier 132 of the item 102 by a barcodescanner, a QR code scanner, etc., communicatively coupled with theimaging device 120 and the server 140, similar to that described in FIG.13 .

At 1516, the item tracking engine 144 feeds the identifier 132 and theone or more images 106 to the item identification model 152. Forexample, the item tracking engine 144 may feed the identifier 132 andthe one or more images 106 to the machine learning algorithm 156 of theitem identification model 152.

At 1518, the item tracking engine 144 retrains the item identificationmodel 152 to lean to associate the item 102 to the one or more images104. The item tracking engine 144 may also retrain the itemidentification model 152 to lean to associate the item 102 to one ormore depth images 106 of the item 102.

At 1520, the item tracking engine 144 updates the set of features 158based on the determined association between the item 102 and the one ormore images 104. Similarly, the item tracking engine 144 may update theset of features 158 based on the determined association between the item102 and the one or more depth images 106. In certain embodiments, method1500 may further include operations to perform the backgroundsuppression operation 1402, similar to that described in FIG. 14 .

While several embodiments have been provided in the present disclosure,it should be understood that the disclosed systems and methods might beembodied in many other specific forms without departing from the spiritor scope of the present disclosure. The present examples are to beconsidered as illustrative and not restrictive, and the intention is notto be limited to the details given herein. For example, the variouselements or components may be combined or integrated with another systemor certain features may be omitted, or not implemented.

In addition, techniques, systems, subsystems, and methods described andillustrated in the various embodiments as discrete or separate may becombined or integrated with other systems, modules, techniques, ormethods without departing from the scope of the present disclosure.Other items shown or discussed as coupled or directly coupled orcommunicating with each other may be indirectly coupled or communicatingthrough some interface, device, or intermediate component whetherelectrically, mechanically, or otherwise. Other examples of changes,substitutions, and alterations are ascertainable by one skilled in theart and could be made without departing from the spirit and scopedisclosed herein.

To aid the Patent Office, and any readers of any patent issued on thisapplication in interpreting the claims appended hereto, applicants notethat they do not intend any of the appended claims to invoke 35 U.S.C. §112(f) as it exists on the date of filing hereof unless the words “meansfor” or “step for” are explicitly used in the particular claim.

1. A system for capturing images for training an item identificationmodel comprising: a plurality of cameras, wherein each camera isconfigured to capture images of at least a portion of a platform; theplatform is configured to rotate; a memory, operable to store an itemidentification model, wherein the item identification model isconfigured to identify items based at least in part upon images of theitems; and a processor, operably coupled with the memory, and configuredto: obtain an identifier associated with an item; detect a triggeringevent at the platform, wherein the triggering event corresponds to auser placing the item on the platform; cause the platform to rotate;cause at least one camera from among the plurality of cameras to capturean image of the item while the platform is rotating; extract a set offeatures associated with the item from the image, wherein each featurecorresponds to a physical attribute of the item; associate the item tothe identifier and the set of features; and add a new entry to atraining dataset of the item identification model, wherein the new entryrepresents the item labeled with at least one of the identifier and theset of features.
 1. tem of claim 1, wherein: a first subset of theplurality of cameras is positioned above the platform, the first subsetof plurality of cameras is arranged to form a triangle; and the firstsubset of plurality of cameras is configured to capture overhead imagesof the item placed on the platform.
 3. The system of claim 1, wherein: asecond subset of plurality of cameras is positioned at one or moreheights with respect to the platform; the second subset of plurality ofcameras is arranged vertically on a rail; the rail is on a side of theplatform adjacent to the platform; and the second subset of plurality ofcameras is configured to capture perspective images of the item placedon the platform.
 4. The system of claim 1, wherein: the platform isrotated one degree at a time until the platform is fully rotated once;and the at least one camera is triggered to capture one image of theitem at each of a plurality of degrees of rotation of the platform. 5.The system of claim 1, further comprising a three-dimensional (3D)sensor positioned above the platform, wherein the 3D sensor isconfigured to capture overhead depth images of the item placed on theplatform, wherein each overhead depth image is configured to captureupward-facing surfaces of the item placed on the platform; wherein theprocessor is further configured to: cause the 3D sensor to capture adepth image of the item while the platform is turning; determine anorientation of the item with respect to the platform; determine that theorientation of the item is longitudinal with respect to the platform;and in response to determining that the orientation of the item islongitudinal with respect to the platform, cause a first subset ofcameras from among the plurality of cameras to take overhead images ofthe item, wherein the first subset of cameras are positioned above theplatform.
 6. The system of claim 1, wherein the set of featurescomprises at least one of: one or more dominant colors of the item,wherein each of the one or more dominant colors is determined based atleast in part upon a set of pixel colors associated with the item fromthe image; a dimension of the item, wherein the dimension comprises awidth, a length, and a height of the item; a bounding box around theitem; and a mask that defines a contour around the item.
 7. The systemof claim 1, further comprising a weight sensor configured to measureweights for items on the platform; wherein the processor is furtherconfigured to: receive a plurality of weights of multiple instances ofthe item; determine a mean of the plurality of weights; associate themean of the plurality of weights to the item; and add the mean of theplurality of weights to the new entry.
 8. A method for capturing imagesfor training an item identification model comprising: obtaining anidentifier associated with an item; detecting a triggering event at aplatform, wherein the triggering event corresponds to a user placing theitem on the platform; causing the platform to rotate; causing at leastone camera from among a plurality of cameras to capture an image of theitem while the platform is rotating; extracting a set of featuresassociated with the item from the image, wherein each featurecorresponds to a physical attribute of the item; associating the item tothe identifier and the set of features; and adding a new entry to atraining dataset of the item identification model, wherein the new entryrepresents the item labeled with at least one of the identifier and theset of features.
 9. The method of claim 8, wherein: a first subset ofthe plurality of cameras is positioned above the platform, the firstsubset of plurality of cameras is arranged to form a triangle; and thefirst subset of plurality of cameras is configured to capture overheadimages of the item placed on the platform.
 10. The method of claim 8,wherein: a second subset of plurality of cameras is positioned at one ormore heights with respect to the platform; the second subset ofplurality of cameras is arranged vertically on a rail; the rail is on aside of the platform adjacent to the platform; and the second subset ofplurality of cameras is configured to capture perspective images of theitem placed on the platform.
 11. The method of claim 8, wherein: theplatform is rotated one degree at a time until the platform is fullyrotated once; and the at least one camera is triggered to capture oneimage of the item at each of a plurality of degrees of rotation of theplatform.
 12. The method of claim 8, further comprising: causing a 3Dsensor to capture a depth image of the item while the platform isturning; determining an orientation of the item with respect to theplatform; determining that the orientation of the item is longitudinalwith respect to the platform; and in response to determining that theorientation of the item is longitudinal with respect to the platform,causing a first subset of cameras from among the plurality of cameras totake overhead images of the item, wherein the first subset of camerasare positioned above the platform.
 13. The method of claim 8, whereinthe set of features comprises at least one of: one or more dominantcolors of the item, wherein each of the one or more dominant colors isdetermined based at least in part upon a set of pixel colors associatedwith the item from the image; a dimension of the item, wherein thedimension comprises a width, a length, and a height of the item; abounding box around the item; and a mask that defines a contour aroundthe item.
 14. The method of claim 8, further comprising: receiving aplurality of weights of multiple instances of the item; determining amean of the plurality of weights; associating the mean of the pluralityof weights to the item; and adding the mean of the plurality of weightsto the new entry.
 15. A computer program comprising executableinstructions stored in a non-transitory computer-readable medium thatwhen executed by a processor causes the processor to: obtain anidentifier associated with an item; detect a triggering event at aplatform, wherein the triggering event corresponds to a user placing theitem on the platform; cause the platform to rotate; cause at least onecamera from among a plurality of cameras to capture an image of the itemwhile the platform is rotating; extract a set of features associatedwith the item from the image, wherein each feature corresponds to aphysical attribute of the item; associate the item to the identifier andthe set of features; and add a new entry to a training dataset of theitem identification model, wherein the new entry represents the itemlabeled with at least one of the identifier and the set of features. 16.The computer program of claim 15, wherein: a first subset of theplurality of cameras is positioned above the platform, the first subsetof plurality of cameras is arranged to form a triangle; and the firstsubset of plurality of cameras is configured to capture overhead imagesof the item placed on the platform.
 17. The computer program of claim15, wherein: a second subset of plurality of cameras is positioned atone or more heights with respect to the platform; the second subset ofplurality of cameras is arranged vertically on a rail; the rail is on aside of the platform adjacent to the platform; and the second subset ofplurality of cameras is configured to capture perspective images of theitem placed on the platform.
 18. The computer program of claim 15,wherein: the platform is rotated one degree at a time until the platformis fully rotated once; and the at least one camera is triggered tocapture one image of the item at each of a plurality of degrees ofrotation of the platform.
 19. The computer program of claim 15, whereinthe instructions when executed by the processor, further cause theprocessor to: cause a 3D sensor to capture a depth image of the itemwhile the platform is turning; determine an orientation of the item withrespect to the platform; determine that the orientation of the item islongitudinal with respect to the platform; and in response todetermining that the orientation of the item is longitudinal withrespect to the platform, cause a first subset of cameras from among theplurality of cameras to take overhead images of the item, wherein thefirst subset of cameras are positioned above the platform.
 20. Thecomputer program of claim 15, wherein the set of features comprises atleast one of: one or more dominant colors of the item, wherein each ofthe one or more dominant colors is determined based at least in partupon a set of pixel colors associated with the item from the image; adimension of the item, wherein the dimension comprises a width, alength, and a height of the item; a bounding box around the item; and amask that defines a contour around the item.